1

SolR が Web サイトのユーザーの選択から「学習」できるようにしたいと考えています。つまり、ユーザーが検索を実行した後にどの製品をクリックしたかを知っているということです。そこで、SolR で索引付けされた各製品の [検索用語 => クリック数] のリストを収集しました。しかし、ユーザー入力に依存するブーストの方法がわかりません。ドキュメントのいくつかのキーと値のペアにインデックスを付け、boost パラメータで使用できる関数を使用して値を取得することは可能ですか?

はっきりしないので、具体例を追加します。

ユーザーが "garden chair" を検索すると、SolR は "green garden chair"、"blue chair"、"hamac for garden" の 3 つの製品を返したとします。予想通り、「グリーン ガーデン チェア」が 1 位、ハマックが最後でした。しかし、その後、「garden chair」を検索しているすべてのユーザーが hamac をクリックすることになります。

他の検索で得たランクを変更することなく、「ガーデン チェア」の検索でハマックが 1 位になるように手助けしたいと思います。したがって、キー=>値ベースのブーストを実行できるようにしたいと考えています。それは SolR で達成できますか?

このようなユーザー ベースの検索結果の改善を必要としているのは、私が最初ではないはずです。

前もって感謝します。

4

1 に答える 1

1

edismax (またはおそらく bf) を使用している場合は、edismax bqを使用できます。これが機能するには、明らかに情報を保存する必要があります(データベース、redis、好きなものに):

  • 「ガーデンチェア」を検索しました:
    • 「hamac for garden」をクリック:10
    • 「緑の庭の椅子」をクリックした: 4
  • 「緑のテーブル」を検索しました:
    • ...

などなど、検索があるときにこれを調べて、検索に利用できる情報がある場合は、必要なものをブーストする bq を送信します。

また、QueryElevationComponentもチェックしてください。ただし、考慮すべき点が 2 つあります。

  1. クリック数を変更するたびにxmlを修正してリロードする必要があるので、ナイトリーなどにバッチ処理できると良いです。
  2. 同様の機能を提供できる最近の jira の問題がありましたが、リクエスト パラメータを提供することで、xml/reload は必要ありません。それもチェックしてください。
于 2014-03-05T08:39:40.363 に答える