再インデックス中にコミットを無効にする

トピック作成者:ks-solruserml-bot (2024/05/23 12:30 投稿)
6
CloseClose

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

こんにちは、

REINDEXCOLLECTIONを使用したいと考えていますが、デフォルトで比較的積極的なautoCommit間隔が設定されています(意図的に)。

理想的には、再インデックスの間、ハードコミットを無効にしたいのですが、そのコレクションで実行時にそれを行う方法は見当たりません。

ランタイムでコレクションの自動コミットを無効にするニンジャ的な方法をご存知の方はいますか(Solrクラウド)?

ありがとうございます

返信投稿者:ks-solruserml-bot (2024/05/23 12:30 投稿)

Karlさん,

「config API」を調べてみてください。進展があれば教えてください!
理想的には、この機能が自動的にそれを行うでしょう。

~ David Smiley
Apache Lucene/Solr 検索開発者
http://www.linkedin.com/in/davidwsmiley

返信投稿者:ks-solruserml-bot (2024/05/23 12:30 投稿)

信じられないでしょう!それを知らなかったなんて! ありがとう!

毎日が学びの日ですね。

返信投稿者:ks-solruserml-bot (2024/05/23 12:31 投稿)

REINDEXCOLLECTIONはソースコレクションを読み取り専用モードにすると思っていましたが、私が間違っていますか?それによってコミットも無効になるのではありませんか?

返信投稿者:ks-solruserml-bot (2024/05/23 12:31 投稿)

それはソースコレクションですが、私が言及しているのは宛先です。

@David - REINDEXはターゲットコレクションを作成するため、プロセスを開始してから宛先の構成を設定しようとしました。
ただし、宛先の構成を設定すると、REINDEXが失敗します:

22:18:40.389 [DaemonStream-karl-test-20015-thread-1-processing-n:solr-0.search-solr.svc.cluster.local:80_solr x:at-uk-002_shard1_replica_n1 c:at-uk-002 s:shard1 r:core_node2] ERROR org.apache.solr.client.solrj.io.stream.DaemonStream - Err
or in DaemonStream: karl-test
java.io.IOException: org.apache.solr.common.SolrException: Could not find a healthy node to handle the request.
at org.apache.solr.client.solrj.io.stream.TopicStream.persistCheckpoints(TopicStream.java:472) ~[solr-solrj-8.8.1.jar:8.8.1 64f3b496bfee762a9d2dbff40700f457f4464dfe - tjp - 2021-02-16 15:52:04]
at org.apache.solr.client.solrj.io.stream.TopicStream.close(TopicStream.java:342) ~[solr-solrj-8.8.1.jar:8.8.1 64f3b496bfee762a9d2dbff40700f457f4464dfe - tjp - 2021-02-16 15:52:04]
at org.apache.solr.client.solrj.io.stream.PushBackStream.close(PushBackStream.java:75) ~[solr-solrj-8.8.1.jar:8.8.1 64f3b496bfee762a9d2dbff40700f457f4464dfe - tjp - 2021-02-16 15:52:04]
at org.apache.solr.client.solrj.io.stream.UpdateStream.close(UpdateStream.java:147) ~[solr-solrj-8.8.1.jar:8.8.1 64f3b496bfee762a9d2dbff40700f457f4464dfe - tjp - 2021-02-16 15:52:04]
at org.apache.solr.client.solrj.io.stream.CommitStream.close(CommitStream.java:155) ~[solr-solrj-8.8.1.jar:8.8.1 64f3b496bfee762a9d2dbff40700f457f4464dfe - tjp - 2021-02-16 15:52:04]
at org.apache.solr.client.solrj.io.stream.DaemonStream$StreamRunner.stream(DaemonStream.java:380) ~[solr-solrj-8.8.1.jar:8.8.1 64f3b496bfee762a9d2dbff40700f457f4464dfe - tjp - 2021-02-16 15:52:04]

set-configを削除すると、問題ありません。

返信投稿者:ks-solruserml-bot (2024/05/23 12:31 投稿)

やや荒っぽい回避策ですが...

  • 再インデックス前にターゲット構成名からコレクションを作成します。
  • そのコレクションにプロパティを設定します(これによりZooKeeperにオーバーレイが書き込まれます)。
  • コレクションを削除します。
  • 再インデックスを実行します。
  • 作成したコレクションからプロパティを削除します。
返信投稿者:ks-solruserml-bot (2024/05/23 12:32 投稿)

コミットが発生しないと、メモリリークが発生します。リアルタイムの取得のためにメモリ内に保持されるトランザクションログの一部があります。インデックスが行われると、コミットはこのメモリを解放します。この動作を無効にする方法については知りません。

Joel Bernstein
http://joelsolr.blogspot.com/

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

KandaSearch

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

投稿の削除

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