2012-01-31 2 views
0

そしてどうですか?Lucene.NETのインデックスセグメントを並列に読み取ることはできますか?

スタンドアアFSDirectoryのIndexReaderとCollectorを使用して結果を収集していますが、現在読んでいる時間のほとんどがLucene.Net.Index.SegmentTermEnum.Next()に費やされています。

読み取りはシングルスレッドで実行され、サーバーには8つのコアがあるため、すべて読み込みます。

答えて

2

私が考えることができる唯一のソリューションは、いくつかのサブインデックスでインデックスを分割し、それらを検索するのにParallelMultiSearcherを使用することですが、Luceneが一般にIOバインドであるためパフォーマンスが低下することがわかりますCPUにバインドされていない

また、すべてのコアを1回の検索に使用する場合は、複数のクエリを並行して処理すると、恐ろしいパフォーマンスが発生する可能性があります。

0

結果を別のスレッドで分割することはできません。すべて同じIndexReaderから読み込みますか?

+0

いいえ、私の読者が私のコールバックコレクタ –

関連する問題