2013-06-09 10 views
15

relevance feedbackSolrに実装したいと思います。 SolrはすでにMore Like Thisのフィーチャーを持っています。単一という文書がある場合、1つの入力文書と類似した類似文書のセットを返します。 SolrのMore Like Like機能を設定することは可能ですか??言い換えれば、一連のドキュメントがあれば、入力セットに類似したドキュメントのリストを返す(類似性によってランク付けされる)。以下の方法で行うことができ、これらのようなよりにもっとこのようなSolrのを回すthis questionへの回答によると Apache Solrの関連性フィードバック

  1. は、指定された文書を返すクエリの結果セットのURLを取ります。たとえば、URL http://solrServer:8983/solr/select?q=id:1%20id:2%20id:3は、実際には文書1,2,3の連結であるクエリid:1 id:2 id:3への応答を返します。
  2. url.streamの上記のURL(関連する連結)をMore Like Thisハンドラ:http://solrServer:8983/solr/mlt?mlt.fl=text&mlt.mintf=0&stream.url=http://solrServer:8983/solr/select%3Fq=id:1%20id:2%20id:3。 Now More Moreこのハンドラは、ドキュメント1,2および3の連結を単一の入力ドキュメントとして扱い、連結に類似したランク付けされたドキュメントセットを返します。

これは非常に悪い実装です。1つの大きなドキュメントのような入力ドキュメントのセットを扱うことは、短いドキュメントが大きいドキュメント全体の小さな部分を占めるため、短いドキュメントを区別します。

Solsの類似点この機能は、The Rocchio Algorithmのバリエーションで実装されています。(1つの)入力文書のトップ20の用語(TF-IDF値が最も高い用語)を使用し、彼らのTF-IDFに従って増強された。私はSolrのMore Like機能を設定する方法を探しています。複数の文書を入力として、各入力文書から上位n項を抽出し、TF-IDFに従って昇格した用語で索引を照会します。

これ以上のように動作するように設定することはできますか?そうでない場合は、Solrで関連性フィードバックを実装する最善の方法は何ですか?

答えて

2

残念ながら、MLTハンドラをそのように設定することはできません。

これを行う1つの方法は、カスタムSearchComponentを実装し、それを専用のSearchHadlerに登録することです。

私はすでに同様のことをしており、MLTコンポーネントのoriginal implementationを見るとかなり簡単です。

最も困難な部分は、異なるシャードサーバーの結果の同期ですが、シャードを使用しないとスキップできます。

他のコンポーネントとの衝突を防ぐために、実装ではのパラメータを独自に使用することを強く推奨します。