2009-03-21 15 views
23

Luceneのパフォーマンスを最適化するさまざまな方法は何ですか?Luceneのパフォーマンスを最適化する

私はlucene検索クエリを保存するためにキャッシュAPIを使用して、クエリを再構築するオーバーヘッドを削減しますか?

答えて

4

チートを見てきました。インデックス全体をRAMにロードするには、RAMDirectoryを使用します。その後、すべてが急激に急増しています。 :)

3

私は、パフォーマンスの質問に対する最良の答えは、それをプロファイルすることであることがわかりました。ガイドラインは素晴らしいですが、データセットのサイズ、実行しているクエリの種類、データ型など、パフォーマンスに影響を与える変数は非常に多いです。

Netbeans profilerまたは類似のものを試してみてください。 Mitchがリンクしている記事を使用しますが、何が役立ち、何が(しばしば意外なことに)傷ついているかを実際にテストしてください。

Luceneから得られるパフォーマンスの差異は、コードの性能向上と比較してマイナーなものになる可能性があります。プロファイラーもその点を指摘します。

11

クイックヒント:

  • 小さなインデックスのサイズにしてください。ノルムを排除し、必要がない場合はタームベクタを削除します。フィールドにStoreフラグを設定する必要がある場合にのみ、それを設定します。
  • 明白ですが、繰り返しは間違いです。 Searcherのインスタンスを1つだけ作成し、再利用します。
  • 高速ディスクのインデックスに保存してください。あなたが編集不能ならば、RAM。
4

ここに多数の無効なリンクがあります。

私が開始する場合、これらの(幾分公式)リソースは、次のとおり

http://wiki.apache.org/lucene-java/ImproveIndexingSpeed

http://wiki.apache.org/lucene-java/ImproveSearchingSpeed

+0

の時点で、Lucene.NETは実際にLuceneより遅れているので、Luceneのドキュメントはますます少なくなります。官僚主義がLucene.NETの貢献者のほとんどを追い払ったようだ –

関連する問題