2017-04-13 8 views
0

私は、ノードあたり2つの破片で、Solr MoreLike複数のシャードでは機能しません。

のSolrバージョンSolrCloudで5ノードクラスタを持っている:私はそれだけでノードごとに結果を返すクエリとdoesnのMLT実行したときに、今6.3.0

enter image description here

」をトン、すべての破片/ノードに分散する中

すなわち

http://10.0.1.15:8983/solr/test_ingest/mlt?q=advertising_id%w72w9424620427042&fl=score&fl=advertising_id&mlt.fl=channel_name&mlt.fl=show_name&mlt.fl=language&mlt.mindf=1

は結果を与えません10

http://10.0.1.119:8983/solr/test_ingest/mlt?q=advertising_id%w72w9424620427042&fl=score&fl=advertising_id&mlt.fl=channel_name&mlt.fl=show_name&mlt.fl=language&mlt.mindf=1

私もPARAMとしてこれを特定しようとしている、

の結果を与える:

破片= 10.0.1.84:8983/Solrの/ test_ingest_shard3_replica1,10.0.1.84:8983/Solrの/ test_ingest_shard8_replica1、 10.0.1.206:8983/solr/test_ingest_shard2_replica1,10.0.1.206:8983/solr/test_ingest_shard7_replica1,10.0.1.15:8983/solr/test_ingest_shard5_replica1,10.0.1.15:8983/solr/test_ingest_shard10_replica1,10.0.1.207:8983/solr/test_ingest_shard1_replica1、 10.0.1.207:8983/solr/test_ingest_shard6_replica1,10.0.1.119:8983/solr/test_ingest_shard9_replica1,10.0.1.119:8983/solr/test_ingest_shard4_rep lica1

私の要求ハンドラ:

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

がどのように分布し、検索を実行するために、私はMLT設定しますか。 ありがとう

答えて

1

このハンドラのように、私が知っている限り、単一のシャードだけなので、ローカルシャードで利用可能なドキュメントのみを検討します。

しかし、More Like This Query Parserは、それがSolrクラウド対応であることに言及していますので、代わりにそれを使用してみてください。

MLTQParserを使用すると、特定のドキュメントに類似するドキュメントを取得できます。 Luceneの既存のMoreLikeThisロジックを使用し、SolrCloudモードでも動作します。ここで使用されるドキュメント識別子は、一意のID値であり、Luceneの内部ドキュメントIDではありません。返される文書のリストは、照会された文書を除外します。

id = 1のドキュメントのようなドキュメントを見つけ、類似性のために名前フィールドを使用します。

{!mlt qf=name}1

mintfとmindfを使用するのと同様の条件を満たしたものに多くの制約を追加します。

{!mlt qf=name mintf=2 mindf=3}1

+0

ねえ、それが働いたおかげで、1つのIDのクエリ時間は約15〜30ミリ秒である、と私は周りに1-4ミルのIDにMLTを取得する必要があるものの、何が最善の方法だろうJavaからそれを行うには、CloudPolrClientをThreadPoolで使用しました。 –

+0

ルックアップごとに30ミリ秒を費やしていて、4メートルのドキュメントがある場合は、37時間で完了します。あなたがすでに持っているものと二日間で完全にできる。容量を増やす必要がある場合は、少なくとも複数のクエリを並列に実行できるようにするために、より多くのレプリカにクエリを分散する必要があります(クエリ時間は短縮されませんが、 。 – MatsLindh

関連する問題