模糊 검색 C#

오늘날 비구조적 데이터와 일관되지 않은 사용자 입력의 세계에서 검색 작업의 정확한 일치는 종종 부족합니다. 문서 관리 시스템, 콘텐츠 분석 도구 또는 엔터프라이즈 검색 엔진에서 작업하든 관계없이 퍼지 검색을 구현하면 검색 쿼리에 오타, 철자 변형 또는 사소한 차이가 있는 경우에도 관련 결과를 검색할 수 있습니다. 이 블로그 게시물에서는 Conholdate.Total for .NET SDK를 사용하여 C#에서 퍼지 검색을 구현하는 방법을 살펴보겠습니다. 여러 폴더에 저장된 여러 파일을 검색하는 방법과 더 큰 정확성과 유연성을 위해 조정 가능한 유사성 수준을 사용하는 방법을 배웁니다.

왜 퍼지 검색을 사용하나요?

퍼지 검색은 사용자 생성 콘텐츠를 처리하거나 다양한 텍스트 소스와 작업하는 모든 현대 애플리케이션에 필수적인 기능입니다. 정확한 검색과 달리, 정확한 검색은 쿼리와 정확히 일치하는 결과만 반환하는 반면, 퍼지 검색은 정의된 유사성 수준에 따라 검색 쿼리에 충분히 가까운 문서를 검색합니다. 이 접근 방식은 오타, 철자 불일치 또는 약간의 언어적 변variation을 고려하여 사용자 경험을 크게 개선합니다.

예를 들어, 사용자가 “receipt” 대신 “reciept"라는 단어를 검색하는 상황에서, 정확한 검색은 실패할 것이고, 퍼지 검색은 여전히 관련 결과를 반환할 것입니다. 이는 법률 문서 검색, 학술 연구 및 기업 데이터 마이닝과 같은 분야에서 특히 유용하며, 이곳에서는 정확성과 유연성이 모두 중요합니다.

Fuzzy Search - .NET 구성

You need to install Conholdate.Total for .NET with the following NuGet installation command:

Install-Package Conholdate.Total

C#에서 여러 파일 및 폴더에 대한 퍼지 검색

다양한 폴더에 저장된 문서 세트에 대해 퍼지 검색을 수행할 수 있습니다. 유사성 수준을 쉽게 구성하고 인덱싱 및 검색을 위한 구조를 정의할 수 있습니다.

// Creating an index folder and add document's folder to it
Index index = new Index("indexing-folder-path");
index.Add("path/parent-folder");

SearchOptions options = new SearchOptions();
options.FuzzySearch.Enabled = true; // Enabling the fuzzy search
options.FuzzySearch.FuzzyAlgorithm = new SimilarityLevel(0.7);

string query = "nulla"; // search approximate matches of the provided query  
SearchResult result = index.Search(query, options);

이 코드 조각에서:

  • 새로운 인덱스가 인덱싱에 사용된 디렉토리를 가리키도록 생성됩니다.

  • 이 인덱스에 모든 문서를 포함하는 상위 폴더가 추가되었습니다.

  • Fuzzy search는 SearchOptions 클래스 를 통해 활성화됩니다.

  • SimilarityLevel는 0.7로 설정되어 있으며, 이는 70% 일치를 의미하거나 30%의 오류 허용치를 나타냅니다.

  • 검색 쿼리 "nulla"가 전달되고, 시스템은 유사성 기준을 충족하는 결과를 검색합니다.

검색 결과가 얼마나 엄격하거나 관대한지에 따라 유사성 수준을 조정할 수 있습니다. 낮은 임계값은 더 많은 유연성을 허용하고, 높은 임계값은 더 긴밀한 일치를 보장합니다.

사용자 정의 가능한 유사성 수준의 이점

Conholdate.Total for .NET SDK의 두드러진 특징 중 하나는 퍼지 검색을 위한 유사도 임계값을 제어할 수 있는 기능입니다. 이러한 수준의 사용자 정의는 일치 프로세스에 대한 세밀한 제어를 제공하여 결과가 관련성과 신뢰성을 보장합니다.

높은 유사성 (예: 0.9): 정밀도가 중요한 경우와 원본 쿼리에 매우 근접한 결과를 원할 때 사용합니다.

낮은 유사성 (예: 0.6): 탐색 검색에 적합하거나 사용자가 자주 오류가 있는 데이터를 입력할 때 사용됩니다.

이 값을 프로그래밍적으로 변경할 수 있는 것은 개발자에게 전체 시스템을 재색인하거나 재구성할 필요 없이 다양한 비즈니스 사용 사례에 적응할 수 있는 유연성을 제공합니다.

무료 평가 라이센스

You can obtain a 무료 임시 라이센스 to avoid the trial limitations of the SDK and be able to test it to full capacity.

결론

퍼지 검색은 스마트하고 관용적이며 사용자 친화적인 검색 기능을 제공해야 하는 애플리케이션에 필수적인 기능입니다. Conholdate.Total for .NET SDK를 사용하여 개발자는 C# 애플리케이션에 강력한 퍼지 검색 기능을 최소한의 노력으로 통합할 수 있습니다. 수천 개의 법률 문서에서 검색하든 사용자 생성 콘텐츠를 스캔하든 이 SDK는 정밀하고 유연하게 처리할 수 있는 도구를 제공합니다. 유사성 수준을 조정하고, 폴더를 가로질러 검색하며, 입력이 완벽하지 않더라도 가장 관련성 높은 결과를 검색하세요.

See Also