MoreLikeThisでFilterQuery(fq)を有効にする

思いっきり公式Documentに書いてあるのだけれど、英語が苦手で日本語のドキュメントがないとイマイチ不安なのである。

MoreLikeThis

これをなんとか読むと、最後の方にFilterしたMoreLikeThisの結果が欲しいならMoreLikeThisHandlerを使うがいい、と書いてあるようだ。

MoreLikeThisHandler

通常の検索クエリの結果に関連してついでにmlt.fl=onでMoreLikeThisの結果を得るのは MoreLikeThisCompornent というやつでHandlerではない。
Handlerはできることがちょっと多いけど、通常の検索とは別にクエリを投げなければならん、という点が欠点である。

というわけで取りあえずやってみた。

solrconfig.xml に 以下を記述する。

<requestHandler name=”/mlt” class=”solr.MoreLikeThisHandler” />

場所は適当に <requestHandler name=”/debug/dump” class=”solr.DumpRequestHandler” >…</requestHandler> の下あたり。

Solrを再起動して、

http://localhost:8983/solr/mlt?q=(id:hogehoge)&mlt.fl=name,description&fq=delete:0

という感じでやると、ちゃんと deleteが0でない結果は返らなくなりましたとさ。めでたし。

カテゴリー: Solr   パーマリンク

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です