
今日の非構造化データと不一致なユーザー入力の世界では、検索操作における正確な一致はしばしば不十分です。ドキュメント管理システム、コンテンツ分析ツール、またはエンタープライズ検索エンジンに取り組んでいる場合でも、ファジー検索を実装することで、検索クエリにタイプミス、スペルの違いや小さな違いがあっても関連する結果を取得できます。このブログ記事では、C# で Conholdate.Total for .NET SDK を使用してファジー検索を実装する方法を探ります。さまざまなフォルダに保存されている複数のファイルを、調整可能な類似度レベルを使用して検索する方法を学び、より高い精度と柔軟性を得る
なぜファジーサーチを使用するのか?
ファジー検索は、ユーザー生成コンテンツを扱ったり、多様なテキストソースと連携したりする現代のアプリケーションにとって不可欠な機能です。正確な検索と異なり、正確にクエリに一致する結果のみを返すのではなく、ファジー検索は定義された類似性のレベルに基づいて検索クエリに十分近い文書を取得します。このアプローチは、タイプミス、スペルの不一致、またはわずかな言語のバリエーションを考慮することで、ユーザーエクスペリエンスを大幅に改善します。
例えば、ユーザーが「reciept」ではなく「receipt」という単語を検索するシナリオでは、正確な検索は失敗しますが、あいまい検索は関連する結果を返します。これは、正確性と柔軟性の両方が重要な法的文書検索、学術研究、企業データマイニングなどの分野で特に役立ちます。
ファジー検索 - .NET 設定
Conholdate.Total for .NET を以下の NuGet インストールコマンドでインストールする必要があります:
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): 探索的検索や、ユーザーが頻繁にエラーを含むデータを入力する可能性がある場合に適しています。
この値をプログラムmaticallyに変更できることは、開発者に再インデックスやシステム全体の再構成を必要とせずに、さまざまなビジネスユースケースに適応する柔軟性を提供します。
無料評価ライセンス
SDKの試用制限を回避し、フルキャパシティでテストできるように、無料の一時ライセンスを取得できます。
結論
ファジー検索は、スマートで寛容かつユーザーフレンドリーな検索機能を提供する必要があるアプリケーションにとって重要な機能です。Conholdate.Total for .NET SDKを使用することで、開発者はC#アプリケーションに強力なファジー検索機能を最小限の労力で統合できます。何千もの法的文書を検索する場合やユーザー生成コンテンツをスキャンする場合でも、このSDKは精度と柔軟性を持ってそれに対応するためのツールを提供します。類似性レベルを調整し、フォルダを横断して検索し、入力が完璧でない場合でも最も関連性の高い結果を取得します。