コンテンツへスキップ
uencoder

Fuzzy Search

ファジーサーチ(Fuzzy Search)は、綴りの揺れに耐性を持つ検索技術であり、編集距離、n-gram、音声アルゴリズムなどに基づいて近似した結果を照合する。

目的

ユーザー入力に誤字や変種が含まれていても関連する結果を返し、検索体験を向上させる。

メカニズム

一般的な手法は、レーベンシュタイン距離のしきい値照合、n-gram 転置インデックス、BK-tree による高速化、Soundex/Metaphone による音声照合、Bitap アルゴリズムなどである。fuse.js、Elasticsearch の fuzzy クエリなどが実装を提供する。

ユースケース

  • 検索エンジンのスペル訂正
  • コマンドラインのオートコンプリート
  • データベースのあいまいクエリ
  • コード検索(誤字許容)

例

  • 入力
    recieve → receive
    Output
    Matches receive (distance 2)

    Spelling correction

よくあるエラー

Overly loose thresholds cause too many false matches
Adjust thresholds dynamically based on word length

関連用語

References