3

ユーザーが検索して結果をクリックすると、この検索キーワードが DB に保存されます。得られるのは、各アイテムのキーワードのリストと、そのキーワードでアイテムがクリックされた回数です。

Solrスキーマには、複数値フィールド「キーワード」があります。すべてのアイテムのすべてのキーワードにそのクリック数を追加し、ブーストして、最もクリックされたアイテムがそのキーワードの結果の上部に表示されるようにするにはどうすればよいですか?

私は dismax を使用しています。今のところ、「apple」のクエリは次のようになります。

q=apple
qf=title^0.4 keywords:"apple"^0.5
bf=hits^0.4 rating^0.3

ご覧のとおり、「キーワード」でブーストしていますが、問題は、「リンゴ」でどのアイテムが最もクリックされたかがわからないことです。

最初のインデックスのインポート時に、すべてのキーワードにブースト パラメータを追加しようとしました。それは役に立たなかったし、私はアイデアがありません。

4

1 に答える 1

0

クリックされたデータをどのように維持していますか?
クリックされた累積データをドキュメントと一緒に 1 つのフィールドとして維持することもできます。
このフィールドを使用して、dismax ブースト関数を使用してドキュメント全体を簡単にブーストできます。@ http://wiki.apache.org/solr/FunctionQuery#What_is_a_Function.3F
では、多数の数学関数を使用できます。

于 2011-09-28T18:38:02.773 に答える