0

N 秒後に Lucene.NET から応答を取得したいのですが、まだ結果が得られていません。どのように?

現在、私は問題に直面しています。すべての Lucene.NET インデックスは中央の場所にあり、各インスタンスは再起動後、検索を行う前にインデックスをローカルにコピーする必要があります。

コピーは最初の Lucene.NET リクエストの後に開始され、完了するまでに数分かかります。現在、すべての Lucene.NET はハングアップして待機しているだけなので、何があっても強制的に応答するようにしています。

助けてください。

[EIDT]

したがって、パスは を使用していますTimeLimitingCollector。これにより、別の質問が表示されます。複数のコネクタを一緒に使用する方法は?

私の元のコードは次のとおりです。

TopFieldCollector collector = TopFieldCollector.create(Sort.RELEVANCE, resultAmount,
                            false,
                            true /* trackDocScores */,
                            true /* trackMaxScore */,
                            false /* docsInOrder */);
                        searcher.Search(query, new PositiveScoresOnlyCollector(collector));

どこに置けばいいTimeLimitingCollectorですか?

4

1 に答える 1

2

TimeLimitingCollectorを使用できます。

[編集]

私は Lucene.NET には詳しくありませんが、Lucene Java ではコレクターを TimeLimitingCollector 内にラップするだけでよく、ドキュメントの収集が遅すぎるとタイムアウト例外がスローされます。

于 2012-08-02T16:17:23.487 に答える