0

次のフィールドを持つ何百万ものドキュメントがあります:
名前 (文字列)、開始バージョン (int)、終了バージョン (int)。

クエリに答えるすべてのレコードを効率的にクエリする必要があります:
バージョン >= "開始バージョン" およびバージョン<="終了バージョン" であるすべてのドキュメントを選択します

上記のクエリの実行には 50 ~ 100 ミリ秒かかりましたが、各バージョンのタグ付けによる同様のクエリには 15 ミリ秒しかかかりませんでした。

私の質問は、Solr がそのようなクエリをどれだけ効率的に処理できるかということです。
代替ソリューションは歓迎されます。
フィールドの値/タイプは、必要に応じて変更できます。

4

1 に答える 1

0

Solr よりもはるかに優れたソリューションは見つからないと思います。あなたが説明するシナリオは、Solr のターゲット シナリオの 1 つです。続行する方法を決定する前に、次のことを確認します。

  • 特定のフィールドにインデックスがあるかどうかを確認します。Solr の構成ファイルを使用して、Solr のインデックスを表示/定義できます。Schema.xmlファイルにインデックスを追加します。SolrConfig.xmlでは、インデックスの低レベルの動作も定義できます。

  • キャッシュが有効になっているかどうかを確認します。これにより、現実的な使用シナリオを実際にスピードアップできます。SolrConfig.xmlでそれぞれの設定を変更できます。

  • 上記の確認/変更を行っても Solr のパフォーマンスに満足できない場合は、NoSQL データベース ソリューションを確認します。おそらく、完全なインデックス サポートを提供するドキュメント指向ストレージであるmongoDBの方がパフォーマンスが向上する可能性があります。

私が助けてくれることを願っています!

于 2014-01-18T07:16:12.520 に答える