1

実験の一環として、Lucene でリアルタイム集計を構築しようとしています。ドキュメントの値はインデックスに格納されています。これは、最大 10,000 個のドキュメントに対して非常にうまく機能します。

ドキュメントの数が多い場合、これは少し遅くなります。この種のドキュメントは検索エンジンの目的に反するため、大量のドキュメントを取得することにあまり投資していないと思います。

しかし、これができれば素晴らしいことです。基本的に私の質問は、Lucene からドキュメントをより速く取得するにはどうすればよいかということです。または、よりスマートなアプローチはありますか?

すでに必要なフィールドのみを取得しています。

[編集] インデックスは 50GB を超える非常に大きいです。これはメモリに収まりません。フィールドの数が異なり、いくつかの種類のドキュメントがあります。集約は、ほとんどの場合、固定されたドキュメント タイプで行われます。しかし、どれがどれであるかを事前に知る方法はありません。

4

1 に答える 1

2

インデックスをメモリに入れましたか?インデックス全体がメモリに収まる場合、それは大幅な高速化です。

ヒットを取得したら (10,000 レコードの場合でも非常に速く返されます)、複数のスレッド/リーダーを開いてそれらにアクセスします。

私が行ったもう 1 つのことは、いくつかのプロパティのみを Lucene に保存することです (つまり、クラスから 50 個の属性を保存しないでください)。ID のリストを取得し、サービス/データベースから他のコンテンツをより速く取得するだけで、物事をより速く取得できる場合があります。

于 2013-08-13T02:09:58.577 に答える