一千萬個為什麽

搜索

SOLRの矛盾した検索結果

私は2つのソルインスタンスを持っています。 1つはマスターであり、もう1つはスレーブであり、インデックスの更新のために20秒ごとにマスターをポーリングします。私のアプリケーションは主にスレーブに照會するので、ほとんどの負荷がスレーブに落ちます。

しかし、マスターに照會するアプリケーションのいくつかの領域があります。例えば、アクションの実行中(私はsymfony 2フレームワーク+ソラリウムバンドル+ソラリアムライブラリを使用しています)、私はマスターに問い合わせます。 1回だけではなく、アクションの実行中に20〜50回クエリを実行します。この量の照會は許容されると仮定できます。クエリ中に何が起こったのか、私は困惑していました。

私がアクションを実行すると(ブラウザからページ要求を行う)、言い換えれば、返される結果セットはリクエストごとに異なります。単純化するために、アクションがマスターに3回だけ照會した場合は、次のようになります。

ページリクエスト1:(最初のクエリ:1ヒット、2番目のクエリ:0ヒット、3番目のクエリ:1ヒット)

ページリクエスト2:(最初のクエリ:0ヒット、2番目のクエリ:1ヒット、3番目のクエリ、0ヒット)

最初のページ要求と2番目のクエリではクエリに違いはありません(3つのクエリ自體は互いに異なります)。それらはまったく同じクエリです。私はsolrマスタインスタンスのリクエストログを尾行し、すべてのリクエストをログに記録するので、アプリケーションコードによって行われたすべてのリクエストがマスターによって正しく受信されています(これは接続の問題、アプリケーションレベルの問題を排除します)。それは時々ヒットすると思われますが、他の時はそうではありません。フロントエンドのsolrインターフェイスで同じクエリ(アクションの実行中に0ヒットを返した)を実行すると、私は期待しているヒットを得ます。

テスト中に、インデックスを変更/更新するプロセスを停止しました。 誰かがこの一貫性のない行動についていくつかの洞察を提供することができますか? solrが同じクエリに対して2つの異なる結果を生成するのはなぜですか?

最佳答案

暫時沒有最佳答案

轉載註明原文: SOLRの矛盾した検索結果