何
SolrのRe-Rankingという機能を知らなかったので調べる。
前提知識
- Solrはデフォルトで、スコア順に並ぶ。スコアの意味は、重要なドキュメント、検索ワードに適合しているドキュメントであることを式によって値にしたもの。
Re-Rankingとは
- https://cwiki.apache.org/confluence/display/solr/Query+Re-Ranking
- 簡単なクエリ(A)のトップN件のスコアを別の複雑なクエリ(B)により再調整することで、トップN件の順位を変更する機能。
- トップN件以外の順位に変化はない。
- 複雑なBの適用をN件に限定できることがメリット。Nが小さいと再調整の対象外ドキュメントが増えるため、Bにヒットしても順位が上がらなくなる。Nをいくつにするかがトレードオフ。
どのバージョンから使える?
例)
1) Re-Rankingなし
- ※"search"は形態素フィールド
2) Re-Ranking適用
Raw Query Parametersに以下を適用
rq={!rerank reRankQuery=$rqq reRankDocs=5
reRankWeight=3}&rqq=(search:ヒロシマ OR search:ビーバー)
- トップ5件をre-rank
- ヒロシマ OR ビーバーにマッチすれば順位が上がるが、"町で大暴れ!ビーバー騒動記"は6位なので順位変動なし。