autoSoftCommitが機能していません

トピック作成者:ks-solruserml-bot (2024/06/04 22:57 投稿)
2
CloseClose

(The bot translated the original post https://lists.apache.org/thread/jkp7fzxzngxtkghw9b6ltrkrdvvq0osm into Japanese and reposted it under Apache License 2.0. The copyright of posted content is held by the original poster.)

こんにちは、

solrconfig.xmlに以下の設定がありますね:

<autoCommit>
    <maxTime>60000</maxTime>
    <openSearcher>false</openSearcher>
</autoCommit>

<autoSoftCommit>
    <maxTime>30000</maxTime>
</autoSoftCommit>

私のコードから多くのsolrClient.add(collName. , commitWithin)呼び出しをトリガーしており、commitWithin=6時間です。

上記の設定に基づいて、私はソフトコミットが30秒ごとに行われることを期待していますが、実際にはそうなっていません。 add操作の10分後にSolrクエリを実行すると、Solr管理UIにドキュメントが表示されません。Solr管理UIには、add操作から10〜20分後でもドキュメントが0と表示されます。

Solrのバージョンは8.9.0です。
updateLogが有効になっています。
managed-schemaには_version_フィールドがあります。

commitWithinはautoSoftCommitの設定を上書きしますか?

問題は何でしょうか?

返信投稿者:ks-solruserml-bot (2024/06/04 22:58 投稿)

ここで少し誤解があります。N秒ごとにコミットが行われると言うのは正確ではありません。

autoSoftCommit設定は、何かがインデックスされるとカウンターが開始されます。そのカウンターが30秒に達すると、ソフトコミットが開始されます。前のコミットが開始された後に追加のドキュメントがインデックスされると、次の30秒タイマーが開始されると思われますが、正確にはわかりません。前のコミットがautoSoftCommitタイマーよりもはるかに長い時間(たとえば3分など)かかる場合、複数のコミットが同時に発生する可能性がありますが、その場合にはSolrには短絡があります。それが、maxWarmingSearchersです。Solrは、その制限に達すると追加の検索器を開くことは許可しません。検索器の作成とウォーミングは、コミットの高価な部分であり、そのためにautoCommitには通常、openSearcherがfalseに設定されています。

あなたが見ていることに基づいて、commitWithinがautoSoftCommitを上書きするようですが、それが本当かどうかは正確にはわかりません。6時間待つことなく、それを5分などに設定してみて、何が起こるかを試してみることができます。

ありがとうございます、
Shawn

返信投稿者:ks-solruserml-bot (2024/06/04 22:58 投稿)

Shawn、返信ありがとうございます。

commitWithinを30秒に設定した実験を行いました。commitWithinを30秒に設定すると、Solr管理UIにドキュメントが表示され、期待される間隔でその数が増加していることがわかりました。ソフトコミットのログメッセージはまだsolrコンテナ内で見ることができませんが、おそらくそれは新しいSolrイメージのログレベル設定に関連しているかもしれません(最近バージョン8.9.0にアップグレードしたため)。

これに基づいて、commitWithinがautoSoftCommitの間隔を上書きするようです!
実験を通じてそれを見つけるのは非常に苦痛ですが、残念ながらドキュメントにはこの重要な詳細が記載されていません。

ありがとう。

トピックへ返信するには、ログインが必要です。

KandaSearch

Copyright © 2006-2024 RONDHUIT Co, Ltd. All Rights Reserved.

投稿の削除

この投稿を削除します。よろしいですか?