テキスト検索において、全文検索とは、コンピュータに保存された単一の文書または全文データベース内の文書コレクションを検索するための一連の手法を指します。全文検索は、メタデータに基づく検索や、タイトル、要約、選択されたセクション、書誌情報などの文書の特定の部分に基づく検索とは区別されます。[ 1 ] [ 2 ] [ 3 ]
全文検索では、検索エンジンは保存されている文書内の単語を調べて、ユーザーのクエリに一致するものを見つけます。[ 4 ]全文検索技術は1960年代に登場し始め(例えば、 1969年のIBM STAIRS)、1990年代にはオンライン書誌データベースで一般的になりました。ワードプロセッサを含む多くのWebサイトやアプリケーションプログラムが全文検索機能を実装しています。[ 1 ] [ 2 ] [ 5 ] [ 6 ]かつてのAltaVistaなどの一部のWeb検索エンジンはWebページの全文をインデックス化しましたが、他の検索エンジンはページの特定の部分のみをインデックス化しました。[ 2 ] [ 3 ] [ 7 ]
少数の文書を扱う場合、全文検索エンジンはクエリごとに各文書の内容を直接スキャンすることができ、この戦略は「シリアルスキャン」として知られています。grepなどのツールはこのように動作します。[ 1 ] [ 8 ]
文書数やクエリ数が多い場合、全文検索は通常、インデックス作成と検索の 2 つのタスクに分けられます。インデックス作成中は、エンジンがすべての文書をスキャンして検索語のリストを作成します。これはインデックス、より正確にはコンコーダンスと呼ばれます。検索段階では、元の文書ではなくインデックスに対してクエリが実行されます。[ 1 ] [ 2 ] [ 8 ] [ 9 ]
インデクサーは、文書内で見つかった各用語を記録し、テキスト内での位置をメモする場合があります。ストップワード(たとえば、「the」や「and」)と呼ばれる一般的な単語は、検索結果にほとんど価値を加えないため省略されます。一部のインデクサーは、単語を基本形に還元するステミングも実行します。たとえば、「drives」、「drove」、「driven」はすべて「drive」という概念語の下にインデックス化される場合があります。[ 1 ] [ 2 ] [ 8 ] [ 10 ]

精度と再現率は、検索の有効性を測る標準的な指標です。再現率は、検索によって返された関連結果の割合を定量化し、精度は返された結果のうち関連性の高い結果の割合を測定します。正式には、再現率は返された関連結果の数と利用可能な関連結果の総数の比率であり、精度は返された関連結果の数と返された結果の総数の比率です。[ 1 ] [ 2 ] [ 4 ] [ 11 ]
右の図は、再現率と精度が低い検索を示しています。図では、赤と緑の点が、特定のクエリに対する潜在的な検索結果の総数を表しており、緑の点は関連性の高い結果を、赤の点は関連性の低い結果を示しています。関連性は、内側の円の中心に近いほど高くなります。実際に検索によって返された結果は、水色の背景で強調表示されています。この例では、関連する可能性のある結果が 3 つのうち、関連する結果が 1 つだけ返されたため、再現率は 1/3 (33%) となります。返された 4 つの結果のうち、関連する結果が 1 つだけであったため、精度は 1/4 (25%) となります。[ 11 ]
自然言語の曖昧さのため、全文検索システムには通常、精度を高めるためのフィルタリングや再現率を高めるためのステミングなどの機能が含まれています。統制語彙検索は、文書にタグを付けて曖昧さを減らすことで、精度の低い結果を軽減するのにも役立ちます。[ 1 ] [ 2 ] [ 9 ]一般的に、精度と再現率の間にはトレードオフがあります。精度を高めると全体の再現率が低下する可能性があり、再現率を高めると精度が低下する可能性があります。[ 1 ] [ 2 ] [ 11 ]
全文検索では、意図したクエリとは関係のない文書が多数取得されることがあります。このような文書は偽陽性と呼ばれます(タイプIエラーを参照)。無関係な文書が取得される原因は、多くの場合、自然言語に内在する曖昧さです。[ 1 ] [ 2 ] [ 9 ]添付の図では、偽陽性は、検索によって返された無関係な結果(赤い点)で表されています(薄い青色の背景で強調表示されています)。
ベイズアルゴリズムに基づくクラスタリング技術は、誤検出を減らすのに役立ちます。たとえば、「銀行」のような検索語の場合、クラスタリングによって文書を「金融機関」、「座る場所」、「保管場所」などのグループに分類できます。これらのカテゴリに関連する単語の出現頻度に応じて、検索語または検索結果を1つ以上のカテゴリに割り当てることができます。このアプローチは、電子情報開示の分野で広く使用されています。[ 12 ]
基本的なレベルでは、検索エンジンはクエリに指定されたフレーズと完全に一致する項目を返します。文法やスペルミスを考慮し、結果を絞り込むためのツールや手法は存在しますが、これらの手法でも通常はテキストの一致が求められます。あるエンティティや概念を表す方法は複数存在することが多いため、クエリに正確な用語が含まれていない場合、全文検索では項目が見つからない可能性があります。
意味検索と混同しないように注意すべきだが、同義語は関連用語のインデックスを作成することで取得でき、単語のバリエーションが検索されたときに、関連用語のいずれかを含む項目も返される可能性がある。[ 13 ]
全文検索の限界は、検索クエリをより正確に表現するためのツールをユーザーに提供することと、検索精度を向上させるアルゴリズムを開発することという2つの方法で対処されてきました。[ 1 ] [ 2 ] [ 8 ] [ 11 ] [ 14 ]
以下は、全文インデックス作成と検索をサポートするソフトウェア製品の一部です。これらの製品の中には、アーキテクチャやアルゴリズムを説明するドキュメントが付属しているものもあり、全文検索の実装方法についてより深く理解できる場合があります。