2016-10-31 4 views
0

私はSolr in Manutingをmanningで読んでいましたが、コミットとさまざまなサーチャーウォーミングのオプションに関する質問はほとんどありませんでした。Apache SOLR - Searcherのオプションとコミット

属性は、指定された時間間隔(maxTime)、doc Count(maxDocs)に基づいてディスクに書き込まれるドキュメントをコミットするよう指示します。

質問1: - MAXTIMEとmaxDocsの両方を一緒に与えることができたりしているこれらの相互exclusice

自動コミットはopenNewSearcherを呼び出すattibute子供を持っています。

本書では、openNewSearcherは、新しいサーチャーが初期化されてウォーミングされるたびに(時間またはカウントに基づいて)コミットされるたびにtrueに設定されると述べています。

質問2:このような場合、コミット後に発行されたすべてのクエリは、サーチャーが温かくなるまでブロックされます。

質問3:何が進行中であり、現時点で実行を完了していないクエリに起こるコミットが

答えて

0

両方maxTime and maxDocs can be setを発行しました:

これらmaxDocsのまたはいずれかの場合maxTimeの限界に達すると、Solrは自動的にコミット操作を実行します。 autoCommitタグがない場合、明示的なコミットだけが索引を更新します。自動コミットを使用するかどうかの決定は、アプリケーションのニーズに依存します。

ブロックに関して - Solrはデフォルトでブロックされません。新しい検索ユーザーは、準備ができたら利用可能になります。 waitSearcherオプションを使用して明示的にコミットすることができます。「ねえ、続行する前に新しい検索者が利用可能になるまで待っていたい」と言うことができます。あなたは本当にこれを行う必要はありません。コミットが行われている間もSolrに更新を送信することもできます。

以前の検索者は、終了する前に進行中のアクティブなクエリをすべて閉じる必要があります。

+0

ありがとうございます。質問#2に関して、openNewSearcherが自動コミットのためにtrueに設定されている場合、新しいサーチャーは、それがウォーミングされていないにもかかわらず、新しいクエリーのサービスにすぐに利用可能ですか?明示的にコミットするためにwaitSearcherがtrueに設定されている場合、クライアント検索は新しい検索者が完全に暖まるまでブロックされます。間違っていたら間違いなく修正してください。 – redeemed

+0

いいえ、waitSearcherはリクエスト元のクライアントをブロックして、新しいサーチャーがいつ利用可能かを知ることができます。私の知る限り、コミット・クライアントが待機している間も照会は引き続き提供されます。私が正しく覚えていれば、温暖化に関しては、捜索者は温暖化が起こる前に利用できないだろうが、古い人はまだ内容を提供するだろう。 – MatsLindh

+0

これは、waitSearcherがtrueに設定されているということは、コミット・クライアントが新しいサーチャーが使用可能で暖められたことを戻すという事実(wait = trueの場合)をコミット・クライアントに認識させることに過ぎません。クエリー・クライアントは、コミット・コールが戻るまで失効したデータを表示します。親切に確認してください。 waitSearcher = falseの場合は、ウォーミングがバックグラウンドで発生している間に、コミットコールがすぐに返されます(コンテンツをディスクに書き込んだと仮定)。この場合、クエリクライアントは部分的に暖かいサーチャーによってサービスされるでしょうか? – redeemed