Proximity

構造化されていないデータで使用するために主に設計され、Proximityモジュールは、問合せ語の間に入っている単語数を数えることで、問合せ語がドキュメント内で互いにどの程度近いかをランク付けします。

Firstモジュールのように、2語のうちの1語と1語の間隔の重要性の違いは、21語と22語の間隔の重要性の違いよりも、通常は大きいため、このモジュールは、結果を可変的なサイズの層に分類します。一致する語がない場合、そのドキュメントは最下位の層に割り当てられます。

1つの単語およびフレーズは、間に入る単語がないため、最上位の層に割り当てられます。問合せが複数の語である場合、Proximityは次のように動作します。
  1. それぞれの問合せ語のすべての絶対的な位置が計算されます。
  2. それぞれの問合せ語の少なくとも1つのインスタンスを含む最も小さい範囲が計算されます。この範囲の長さは、単語数で指定されます。

    各ドキュメントのスコアは、問合せ内の範囲の長さの違いおよび語数を含む層です。違いが小さいほうが、違いが大きいよりも適切になります。

問合せ展開(つまり、ステミング、スペル修正およびシソーラス)中に、展開された語は、問合せ内にあるかように処理されるため、近接メトリックは、一致するドキュメントの展開された語の位置を使用して計算されます。

たとえば、ユーザーがbig catsを検索し、ドキュメントには文"Big Bird likes his cat" (ステミングではcatscatとみなします)が含まれる場合、近接メトリックは、文が"Big Bird likes his cats"であるかように計算されます。

Proximityは、問合せには一致する語のみが含まれているかのように、部分的に一致した問合せをスコア付けします。たとえば、ユーザーがcat dog fishを検索し、catfishのみを含むドキュメントが部分的に一致している場合、ドキュメントは、問合せcat fishが入力されているかのようにスコア付けされます。

注意: Proximityは、ブール検索、クロスフィールド一致、ワイルドカード検索では機能しません。そのような一致のすべてに、ゼロのスコアが割り当てられます。