0

現在、solr のオートコンプリートと検索機能を使用しています。オートコンプリートの提案をランク付けする際に、検索された用語の人気を利用したいと考えています。

たとえば、「usb」が先週 10 回検索され、「user」が先週 100 回検索された場合、「us」と入力すると、user は usb より上位にランク付けされます。

この要件を満たす方法はありますか?ありがとう

4

1 に答える 1

0

つまり、「検索クエリ インデックス」の値を高め、定期的に更新するには、インデックス時間ブーストを使用する必要があります。

検索されたすべてのクエリのインデックスを作成できます。そのインデックスは、検索回数の関数として各ドキュメントのインデックス時間ブーストを使用して作成できます。ブースト ファクターは、検索された回数だけである可能性があります。 https://wiki.apache.org/solr/SolrRelevancyFAQ#index-time_boosts

例えば。検索クエリ - 'foo'、'foo'、'bar'、'bar'、'bar'、'abcd' は、'foo' のブーストが 2、'bar' のブーストが 3 の新しいインデックスに追加されます。 abcd' with 1.

このインデックス( :で始まる)で動的検索を実行し、入力された先行文字をクエリに追加できます。ドキュメント スコアには、インデックス時間のブーストが反映されます。

例えば。:スコアが最も高いドキュメントを最初に返します。ユーザーが 'f' を入力した後 - 'f*' という用語は、インデックス時間のブーストが高いため、他の用語よりも 'foo' を返します。

ここで「用語コンポーネント」が動作するかどうかはわかりません。そのスコアは用語の頻度に基づいており、インデックス時間のブーストには基づいていません。

より多くの検索リクエストが蓄積されると、新しい検索数を反映する更新されたブースト値でインデックスを再作成する必要があります。

例えば。「バー」の新しい検索がある場合は、ブースト 4 で「バー」ドキュメントのインデックスを再作成します。

于 2014-10-11T20:07:52.307 に答える