0

多数の solr シャードがあり、マルチレベルのアグリゲーターをセットアップしようとしています。私の理解では、1 つのアグリゲーターに関連付けられるコアは 200 を超えてはなりません。現在の計画では、最初のレベルのアグリゲーターがそれぞれ 100 コアで動作しています。次に、これらをまとめて収集する別のレベルのアグリゲーターを用意します。これまでのところ、これは機能しておらず、第 2 レベルのクエリを実行すると、500 内部サーバー エラーが発生しています。これを掘り下げると、レベル 1 のアグリゲーターが NPE を提供していることがわかります。また、クエリの翻訳が行われていることもわかりました。たとえば、レベル 2 アグリゲーターに次のようなものを与えます。

http://l2agghostname:8080/solr/core-00/select?q=*

次のものをレベル 1 に送信します。

http://l1agghostname:8080/solr/core-00/select?ids=a6_370573660942_76697809790_0,a7_370573660942_76697809790_4&wt=xml&q=*

これは、返される ID を受け取っていることを示唆していますが、その「ids」パラメーターが何をすべきか正確にはわかりません。同じクエリをレベル 1 アグリゲーターに直接接続すると、同じエラーが発生しますが、ドキュメント ID を 1 つだけ指定すると、次のようになります。

http://l1agghostname:8080/solr/core-00/select?ids=a6_370573660942_76697809790_0&wt=xml&q=*

その後、情報が返されます。

これは非常に奇妙に思えますが、この ids パラメータがどのように機能するかを理解するために時間を費やす必要があるかどうかもわかりません。私は赤いニシンに従っていますか?

PS:http://l1agghostname:8080/solr/core-00/select?q=*期待どおりに結果を返します。

4

1 に答える 1

0

最終的に分かったのは、Solr はこのような検索を処理できないということでした。Solr は、スタックを介して最初のクエリを送信します。その後、アグリゲータは ID を収集して送り返します。その後、Solr は ID を使用してドキュメントを取得することになっています。ID が返されると、それらすべてを取得するためのパスを呼び出すことができなくなります。したがって、クエリが間違ったマシンに送信され、エラーが発生しました。

于 2013-01-18T09:27:40.647 に答える