検索結果の関連性を高めるために Zend Lucene を構成するベスト プラクティスは何ですか?
私は次のフィールドとドキュメントタイプを持っています
productname (Text)
description (Text)
category (Keyword)
サンプルコードをいくつか教えてください。
検索結果の関連性を高めるために Zend Lucene を構成するベスト プラクティスは何ですか?
私は次のフィールドとドキュメントタイプを持っています
productname (Text)
description (Text)
category (Keyword)
サンプルコードをいくつか教えてください。
あなたの質問で頭に浮かぶ概念が 2 つありますが、探しているものが正確にはわかりません。
スコア: ドキュメントが検索クエリにどの程度一致するかを示す評価。マニュアルから:
Zend_Search_Lucene は、Java Lucene と同じスコアリング アルゴリズムを使用します。検索結果のすべてのヒットは、デフォルトでスコア順に並べられます。
$hits = $index->find($query);
foreach ($hits as $hit) {
echo $hit->id;
echo $hit->score;
}
スコアはデフォルトで取得され、関連性の高いものから低いものへと結果を並べ替えるために適用されるため、何か他のものが必要であると想定する必要があります。
Term Boosting : クエリ内の個々の用語の関連性に影響を与えるために使用されます。もう一度マニュアルを引用します:
ブーストを使用すると、個々の用語をブーストすることでドキュメントの関連性を制御できます。たとえば、
PHP framework
「PHP」という用語をより関連性の高いものにしたい場合は、用語の横にあるブースト係数とともに ^ 記号を使用してブーストします。次のように入力します。
PHP^4 framework
これにより、PHP という用語を含むドキュメントの関連性が高まります。次の例のように、フレーズ タームとサブクエリをブーストすることもできます。
"PHP framework"^4 "Zend Framework"
これはまったく役に立ちますか?
検索エンジンから関連性の高い結果を得るのは大変な作業です。ご指定の詳細レベルでは、具体的なアドバイスを提供することは困難です。この論文から始めることをお勧めします。