0

Lucene Core 3.6 を使用しています。

多くの同時リクエストがIndexSearcher.

IndexWriter同じものを使用しDirectoryて新しいものを作成することはできますAnalyzerか?最初はインデックスにデータを入力して安全に書き込むことができましたか? 注意が必要なブロッキング、同期、または同時実行の問題はありますか?

私の読書から、新しく追加されたドキュメントは、新しいドキュメントを開くとすぐに利用できると信じていますが、パフォーマンス上の理由から、できるだけ長く開いIndexSearcherたままにしたいということも読みました。私にとって、これは、次のリクエストIndexSearcherで新しいを返すことができるように、いつインデックスに書き込むかを追跡する必要があることを意味します。IndexSearcher

私のDirectory実装の選択がこれに影響を与えているのではないかと思います。今までは しか使っていませんでしたRAMDirectory

編集:私が求めていることをより明確にするためにタイトルを更新しました。

4

1 に答える 1

2

SearchManager を使用します。Mike McCandless が検索マネージャーと NRT マネージャーに関するブログ記事を書いているので、参考になるかもしれません。

Lucene がほぼリアルタイム (NRT) のインデックス更新を実現する方法についてオンラインで読むことができるさまざまな記事がありますが、基本的な質問に答えるには、1 つの IndexWriter のみを開く必要がありますが、更新時にそのライターから新しいリーダーが開かれます。リーダーをできるだけ長く開いたままにしておくのは良いことですが、NRT では更新がメモリから行われるため、非常に短い時間 (通常は数十ミリ秒) になります。

于 2012-05-20T16:13:49.073 に答える