2012-03-11 7 views
0

サイズが1MB未満で約10,000のドキュメントをカバーする小さなインデックスがあります。格納されている唯一のフィールドは非常に短く、小さなインデックスのサイズを説明しています。アイテム/ドキュメントの更新には小さなインデックスで1〜2秒かかります

文書が索引にロードされた後、既存の文書の更新には1〜2秒かかります(ただし、この範囲にはかなりの差があります)。私たちはさまざまなベストプラクティス(Lucene wikiのものなど)を利用しようとしましたが、間違っているものは見つけられません。私たちはさらに先に進み、IOが問題になる可能性を排除するためにRAMDirectoryを使用しています。

これは実際に期待されるパフォーマンスですか?

UPDATE下記の要求として 、私はいくつかの詳細を追加している:私たちは、ブラックボックスとしてのLuceneを治療している

  • 、我々だけの時間、それは/更新のインデックスを再作成するのにかかる時間の量をオブジェクト。我々は内部で何が起こっているのか分からない。
  • オブジェクト(またはLuceneの用語では文書)は非常に小さく、合計サイズは2KBのデータです。
+0

私は本当にLuceneに精通していませんが、何が起こっているのかをプロファイラを使って調べてみましたか?関連しているかもしれない文書についてのいくつかの詳細について言及したいかもしれません。 – thkala

答えて

0

アップデート手順の概要を示すコードスニペットが役立ちます。それぞれの更新後にコミットしていますか?これは必須ではなく、最高性能のためには、ニアリアルタイムリーダーを使用する必要があります。 Newer Luceneのバージョンには、関連する定型文のほとんどを扱うNRTManagerがあります。

多くの場合、ベストプラクティスは、ほとんどまたはまったくコミットしないことです(シャットダウン時を除く)。あなたのサービスが異常にシャットダウンした場合、インデックスは失われますが、そうしなくても、その間に起こったすべての変更を考慮に入れて、再起動時に再構築する必要があります。

関連する問題