あいまい検索【fuzzy string searching】approximate string matching
概要

一般的なデータベース検索では、入力した語句に厳密に合致する項目だけを返す「完全一致検索」が用いられることが多い。該当する項目が存在しない場合は検索失敗となるため、利用者が正確な表記を知らないと目的の情報を見つけられないことがある。
あいまい検索はこれとは対照的に、一致の基準を柔軟にすることで、関連性の高い項目を幅広く提示する。何を「一致」とみなすかの判定基準はシステムごとに異なり、一致の度合いに応じたスコアリングで結果を順位付けする実装も多い。
一致とみなされる条件として、全角・半角の違い、大文字・小文字の違い、ひらがな・カタカナの違い、漢数字・算用数字の違いなど、文字種が異なるが同義の語句を同一視する処理がある。また、「引っ越し」と「引越し」のような送り仮名の差異、「コンピュータ」と「コンピューター」のような長音符号の有無といった表記揺れも吸収されることが多い。
さらに高度な実装では、スペルミスや文字の脱落、入れ替わりを含む語を入力した場合でも、文字列間の編集距離などを利用して正しい語句を候補として提示する。例えば、「Micorsoft」に対して「Microsoft」を、「データベス」に対して「データベース」を返すような処理がこれに該当する。自然言語処理の知見やデータを動員し、同義語や類義語、略称、別称など、意味的に近い語を検索語と同一視する機能を備えるシステムもある。近年では、機械学習などの高度な技術を活用し、単純な文字列の類似性だけでなく文脈や検索意図を考慮するシステムもある。
キーワード検索や全文検索が可能なシステムでは、完全一致とあいまい検索を切り替えられるものが多い。Web検索エンジンでは特に指定がなければあいまい検索が適用され、語句をダブルクォーテーション("")で囲むと完全一致検索に切り替わる仕様のサービスが多い。データベース管理システム(DBMS)では、SQLのLIKE句による部分一致検索や、全文検索エンジンを組み合わせた類似度検索としてあいまい検索が実現されることが多い。