GroupDocs와 .NET에서 동의어 검색을 사용하여 검색 인덱스 만들기

이 가이드에서는 GroupDocs.Search를 사용하여 검색 인덱스 생성 방법을 배우고, 해당 인덱스에 문서를 추가하며, 동의어 검색을 활성화하여 사용자가 다른 용어를 사용하더라도 관련 콘텐츠를 찾을 수 있도록 합니다. 법률 저장소, 기업 지식 베이스, 연구 아카이브를 구축하든, 아래 단계는 .NET Framework 4.6.1+, .NET Core 및 .NET 5+에서 작동하는 프로덕션‑레디 솔루션을 제공합니다.

빠른 답변

  • “검색 인덱스 생성”이 의미하는 바는? 문서의 검색 가능한 카탈로그를 구축하며, 추출된 텍스트를 밀리초 단위 조회를 위한 최적화된 구조에 저장합니다.
  • 왜 동의어 검색을 사용하나요? 쿼리를 동일한 의미를 가진 단어들로 확장하여 일반적인 말뭉치에서 재현율을 최대 30 %까지 높입니다.
  • 주요 전제 조건은 무엇인가요? .NET 4.6.1+ (또는 .NET Core/5+), C# 지식, 그리고 GroupDocs.Search + GroupDocs.Redaction NuGet 패키지.
  • 라이선스가 필요합니까? 평가를 위해서는 무료 체험판이면 충분하며, 프로덕션 배포에는 영구 라이선스가 필요합니다.
  • 이것을 Redaction과 결합할 수 있나요? 예—GroupDocs.Redaction은 검색 전후에 실행되어 민감한 데이터를 마스킹할 수 있습니다.

“검색 인덱스 생성”이란?

검색 인덱스는 각 문서에서 추출된 텍스트와 메타데이터를 보관하는 데이터 구조로, 엔진이 일치하는 파일을 즉시 찾을 수 있게 합니다. GroupDocs.Search는 소스 폴더를 스캔하고 지원되는 형식을 파싱하여 지정한 디렉터리에 압축된 인덱스 파일을 작성함으로써 이 인덱스를 구축합니다.

왜 동의어 검색을 활성화하나요?

동의어 검색은 사용자의 쿼리에 자동으로 대체 용어를 추가하여, **“improve”**에 대한 검색이 “enhance,” “upgrade,” 또는 **“optimize”**를 포함하는 문서도 반환하도록 합니다. 실제로 이는 결과 재현율을 20‑35 % 높이면서 정밀도를 높게 유지할 수 있는데, 이는 내장된 동의어 사전이 각 언어별로 선별되어 있기 때문입니다.

전제 조건

  • .NET Framework 4.6.1 이상 (또는 모든 .NET Core/5+ 런타임).
  • 기본 C# 개발 기술 및 Visual Studio (Community, Professional, 또는 Enterprise).
  • NuGet을 통해 설치된 GroupDocs.Search 및 GroupDocs.Redaction 패키지.

설치

다음 방법 중 하나를 사용하여 .NET용 GroupDocs.Redaction을 설치합니다 (자세한 내용은 GroupDocs.Redaction .NET 문서를 참조).

.NET CLI:

dotnet add package GroupDocs.Redaction

Package Manager Console:

Install-Package GroupDocs.Redaction

또는 Visual Studio의 NuGet 패키지 관리자 UI를 사용하여 “GroupDocs.Redaction”을 검색하고 직접 설치합니다. API 참조는 GroupDocs Redaction API를 참조하십시오.

라이선스 획득

  • 무료 체험: 모든 기능을 탐색하기 위해 체험 버전으로 시작합니다.
  • 임시 라이선스: GroupDocs 웹사이트에서 임시 라이선스를 신청하거나 GroupDocs License Management 포털을 통해 라이선스를 관리합니다.
  • 전체 구매: 프로덕션 준비가 되면 평가 제한을 모두 제거하는 전체 라이선스를 구매합니다.

.NET용 GroupDocs.Redaction 설정 방법

GroupDocs.Redaction은 검색 전후에 민감한 콘텐츠를 마스킹하는 핵심 기능을 제공합니다. 라이선스와 선택적 구성 설정으로 인스턴스화하는 Redactor 클래스를 노출합니다.

다음 코드는 redactor 인스턴스를 생성하고 라이선스 파일을 로드하는 방법을 보여줍니다:

// Definition anchor: the Redactor class provides methods to locate and mask text, images, or metadata.
var redactor = new GroupDocs.Redaction.Redactor();
using GroupDocs.Redaction;

// Initialize a new Redactor object with your document path
RedactorSettings settings = new RedactorSettings();
Redactor redactor = new Redactor("YOUR_DOCUMENT_PATH", settings);

redactor가 준비되면 검색 결과에서 가져온 문서에 대해 redactor.Redact(...)를 호출할 수 있습니다.

검색 인덱스 생성 방법

검색 인덱스를 생성하려면 인덱스 파일이 저장될 폴더를 지정하고 GroupDocs.Search의 Index 클래스를 초기화합니다. 인덱스는 소스 문서에서 추출된 모든 검색 가능한 데이터를 보관합니다.

먼저 인덱스를 위한 디렉터리를 만들고 Index 객체를 인스턴스화합니다:

// Definition anchor: the Index class represents the searchable container that holds all indexed documents.
var indexPath = @"C:\MySearchIndex";
var index = new GroupDocs.Search.Index(indexPath);
string indexFolder = "YOUR_DOCUMENT_DIRECTORY/AdvancedUsage/Searching/SynonymSearch";

인덱스를 생성하면 폴더에 일련의 바이너리 파일이 기록됩니다; 이 파일들은 일반적으로 1,000페이지당 200 KB 이하이며, 디스크 공간을 소모하지 않고 수백만 페이지까지 확장할 수 있습니다.

인덱스에 문서 추가 방법

문서를 추가하려면 API가 소스 파일이 들어 있는 디렉터리를 가리키도록 하고 인덱스에 해당 파일들을 수집하도록 지시합니다. 이 과정은 지원되는 각 형식을 파싱하고 텍스트를 추출하여 빠른 검색을 위해 인덱스에 저장합니다.

다음 코드를 사용하여 소스 폴더의 모든 파일을 인덱싱합니다:

// Definition anchor: DocumentSource tells the index where to read files from and which formats to accept.
var sourceFolder = @"C:\MyDocuments";
index.Add(sourceFolder);
using GroupDocs.Search;

Index index = new Index(indexFolder);
// This sets up the index in the specified folder.

GroupDocs.Search는 30개 이상의 입력 형식을 지원합니다—DOCX, PDF, PPTX, HTML 및 일반 이미지 유형을 포함—따라서 추가 변환기 없이도 사실상 모든 기업 아카이브를 인덱싱할 수 있습니다.

동의어 검색 활성화 및 실행 방법

동의어 처리는 SearchOptions를 통해 활성화됩니다. 활성화되면 모든 쿼리가 사전의 동의어를 자동으로 포함하도록 확장되어 정밀도를 손상시키지 않으면서 재현율을 향상시킵니다.

다음 스니펫을 사용하여 동의어 검색을 활성화합니다:

var options = new GroupDocs.Search.SearchOptions()
{
    UseSynonyms = true
};
var result = index.Search("improve", options);
string documentsFolder = "YOUR_DOCUMENT_DIRECTORY";

기본 동의어 사전에는 영어에 대해 5,000개 이상의 용어 쌍이 포함되어 있습니다. 또한 산업별 전문 용어를 지원하기 위해 사용자 정의 SynonymDictionary 파일을 로드할 수 있습니다.

사용자 정의 동의어 사전

도메인별 동의어가 필요하면 자체 사전 파일을 로드하고 쿼리를 실행하기 전에 SearchOptions에 할당합니다.

options.SynonymDictionary = new SynonymDictionary(@"C:\mySynonyms.txt");
var result = index.Search("upgrade", options);
index.Add(documentsFolder);
// This step populates the index with content from your documents.

일반적인 문제 해결 팁

  • 경로 문제: 인덱스 및 소스 폴더가 프로세스 계정에서 접근 가능한지 다시 확인하십시오.
  • 라이선스 제한: 라이선스가 없는 빌드는 인덱싱된 파일 수를 100개로 제한할 수 있습니다.
  • 결과 없음: 동의어 사전이 로드되었는지 확인하십시오; 런타임에 options.SynonymDictionary.Count를 검사할 수 있습니다.

실용적인 적용 사례

  1. 법률 문서 관리: 법률 용어와 그 동의어를 사용하여 판례를 찾습니다.
  2. 학술 연구: 학술 PDF 및 Word 파일 전반에 걸쳐 문헌 검색을 확장합니다.
  3. 기업 지식 베이스: 사용자가 쿼리를 다르게 표현하더라도 내부 정책을 검색합니다.
  4. 콘텐츠 관리 시스템: 편집자가 기사에 태그를 지정할 때 더 풍부한 검색을 제공합니다.
  5. 고객 지원 티켓: 동의어 문제 설명을 사용하여 티켓을 알려진 이슈와 매칭합니다.

성능 고려 사항

  • 인덱스 유지 관리: 대량 업데이트 후 재인덱싱; 증분 인덱싱은 다운타임을 최대 70 % 감소시킵니다.
  • 리소스 모니터링: 표준 VM(2 vCPU, 8 GB RAM)에서 10 GB 배치를 인덱싱하면 메모리 사용량이 약 1.2 GB RAM에 도달합니다; 한계에 다다르면 배치 크기를 조절하십시오.
  • 객체 해제: 작업이 끝나면 index.Dispose() 및 redactor.Dispose()를 호출하여 네이티브 리소스를 해제합니다.

결론

이제 GroupDocs를 사용하여 검색 인덱스 생성 방법, 인덱스에 문서를 추가하는 방법, 그리고 보다 직관적인 사용자 경험을 위한 동의어 검색을 활성화하는 방법을 알게 되었습니다. 이 기반을 통해 강력한 검색 엔진 위에 Redaction, 사용자 정의 랭킹 또는 퍼지 매칭을 추가할 수 있습니다.

다음 단계

  • SearchOptions.FuzzySearch를 실험하여 오타를 포착합니다.
  • Ranking API를 탐색하여 우선 순위 문서를 강화합니다.
  • GroupDocs 포럼 또는 무료 지원 포럼에 참여하여 팁을 공유하고 질문하십시오.
  • 업데이트 및 새로운 기능을 위해 Latest GroupDocs Releases를 확인하십시오.

자주 묻는 질문

Q: 동의어 검색이란?
A: 동의어 검색은 사용자의 쿼리를 미리 정의된 대체 용어를 포함하도록 확장하여, 다른 표현을 사용하는 관련 문서를 찾을 가능성을 높입니다.

Q: GroupDocs 라이선스를 어떻게 업데이트하나요?
A: GroupDocs License Management 포털을 방문하고 License.SetLicense("path/to/license.lic")를 통해 새 라이선스 파일을 업로드합니다.

Q: 다국어 환경에서 동의어 검색을 사용할 수 있나요?
A: 예—지원하는 각 로케일에 대해 언어별 SynonymDictionary 파일을 로드하면 엔진이 쿼리마다 적절한 동의어 세트를 적용합니다.

Q: 가장 흔한 인덱싱 문제는 무엇인가요?
A: 파일 접근 권한, 지원되지 않는 형식, 그리고 체험판 문서 제한 초과가 개발자가 겪는 주요 세 가지 문제입니다.

Q: 매우 큰 인덱스의 성능을 어떻게 최적화할 수 있나요?
A: 증분 인덱싱을 사용하고, 인덱스를 SSD에 저장하며, IndexingOptions.MaxDegreeOfParallelism을 CPU 코어 수에 맞게 구성합니다.


마지막 업데이트: 2026-09-16
테스트 환경: GroupDocs.Search 23.10 for .NET
작성자: GroupDocs

using GroupDocs.Search.Options;

SearchOptions options = new SearchOptions();
options.UseSynonymSearch = true; // Activate synonym search.
string query = "improve";
SearchResult result = index.Search(query, options);
// This operation returns documents matching 'improve' or its synonyms.

관련 튜토리얼