熟語やフレーズなど複数の単語の組み合わせで検索を行う場合、それらに含まれる単語の近接度や出現する順番が重要な意味を持つことがあります。現在の検索エンジンでは近接度や出現順は自動で重み付けがされますが、検索者がそれらを重視するクエリを送ることもできます。

単語の近接度と語順を重視する演算

検索フォームに入力されるキーワードは、単なる単語の羅列ではなく、意味を持った語順で記述される場合があります。特に熟語やフレーズによる検索の場合、その語順は重要な意味を持っています。

個々のキーワードと一致する単語がユーザーの要求と同じ順番・近い距離で配置されている文章は、それぞれに対してユーザーの意図するような関係性を持って書かれている可能性の高いものです。こうした検索キーワードの近接や語順を指定するクエリとして、近接演算やADJ演算があります。

入力語句どおりの語順と距離を重視する近接演算

近接演算とは、複数のキーワードでの検索時に、文章中の単語の並び順が同じで、一定の距離内にある文書を切り出すアルゴリズムです。例えば、「情報検索」あるいは「情報 + 検索」というワードで検索したときに、「情報」と「検索」が両方存在し、「情報」「検索」という順番で配置されていて、本文中である一定の距離内に記述されている文書を検索します。

情報 NEAR 検索

上記の検索では「情報検索」や「情報の検索」や「情報を検索」などの検索結果を返します。またデータベースによっては「NEAR/許容範囲」という形の演算子を検索式に用いることで、それぞれの語句の間隔(間に含まれる語数)を指定してその文字間隔を守って順番が揃った検索を行うものもあります。

ウェブ検索エンジンでは、NEAR演算子を用いた近接演算は下火になってしまいました。現在の主要なウェブ検索エンジンでは、NEAR演算子に対応しているものはありません。

入力語句どおりの検索を行うADJ演算

ADJ演算とは、複数ワードでの検索時に、文章中の単語の並び順が同じで連続している文書を切り出すアルゴリズムです。例えば、「情報検索」あるいは「情報」「検索」という2ワードでの検索を行った際に、「情報」と「検索」が両方存在し、かつその2つが本文中で「情報」「検索」という順番で隣り合って記述されている文書を検索します。

データベースによっては「ADJ+文字間隔」という形の演算子を検索式に用いることで、それぞれの語句の間隔を指定して、その文字間隔を守って記載している情報の検索を行うものもあります。しかし現在の検索エンジンでは、フレーズ検索を用いることでADJ演算を代替することができるようになり、ADJ演算は利用されなくなっています。

現在のウェブ検索における近接演算とADJ演算の実装

検索エンジンで複数の単語でのAND検索や、熟語、フレーズなどを使った検索を行うと、熟語やフレーズそのものや、単語の並び順の近い文章を含むWebページが上位の結果として返ってきます。

また、複数のキーワードで検索する際、言葉の並び順を変えて検索すると、検索結果が大きく変化します。これらのことを考えると、検索エンジンの内部で、近接演算のアルゴリズムを用いたクエリプロセシングを行っていることは間違いありません。

上記のそれぞれの検索は、すべて異なる検索結果を返します。近接度や語順を加味し、それぞれについて最適な結果を自動で返すような仕様になっているのです。