複数のIDを指定して、`route` パラメータを使用した `deleteById` の実行について

トピック作成者:ks-solruserml-bot (2024/08/15 10:31 投稿)
8
CloseClose

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

こんにちは、

私たちはSolr Cloud(バージョン8.10)を使用しています。deleteById を使用して、特定のシャードからIDを削除するためにIDとルート値を指定しています。しかし、deleteById は1つのIDしか受け取れません。

そこで質問なのですが、route パラメータを使用して複数のIDを deleteById に送信する方法はありますか?また、複数の更新リクエストを1つのSolrリクエストにまとめて送信することは可能でしょうか?

返信投稿者:ks-solruserml-bot (2024/08/15 10:31 投稿)

ルーティングを省略して複数のIDを送信してください。Solr Cloudがそれらを正しいシャードにルーティングします。これは、Solr Cloudがルートパラメータを読み取って正しいシャードに送るのと同じくらい速いです。Solr Cloudの主な目的は、シャードやレプリカを自動で管理することです。

wunder
Walter Underwood
wunder@wunderwood.org
http://observer.wunderwood.org/ (私のブログ)

返信投稿者:ks-solruserml-bot (2024/08/15 10:31 投稿)

はい、Anjali。

私は UpdateRequest.deleteById(List<Ids>) を使用しましたが、特に問題はありません。IDは一意なので、あなたが言う「ルート値」が何を意味しているのかはよくわかりません。

ありがとうございます
Subhasis Patra

返信投稿者:ks-solruserml-bot (2024/08/15 10:31 投稿)

しかし、ドキュメントを削除するために必要な正しいシャードを見つけるためには、ルートパラメータが必要です。

返信投稿者:ks-solruserml-bot (2024/08/15 10:32 投稿)

いいえ、Solr Cloudは自動的にそれを正しいシャードにルーティングします。

wunder

返信投稿者:ks-solruserml-bot (2024/08/15 10:32 投稿)

はい、コレクションがユニークID以外のフィールドでシャーディングされている場合、ルートとIDパラメーターの両方が必要です。この機能は、Solrのバージョン8.10以前では壊れていましたが、以下のJIRAで修正されました - SOLR-8889

ルートを使用して複数のIDを削除するには、以下のように直接アップデートリクエストオブジェクトを使用できます。

UpdateRequest req = new UpdateRequest();

for(solr docs) {
    req.deleteById(docId, contentHash); // 内部的にハッシュマップに追加
}

req.process(client, collection)
返信投稿者:ks-solruserml-bot (2024/08/15 10:32 投稿)

ありがとうございます、Susmit。解決策を教えていただき助かりました。

ただ、「req.process(client, collection)」の部分が少し理解できていません。こちらについて説明していただけますか?そうしていただけると助かります。

返信投稿者:ks-solruserml-bot (2024/08/15 10:32 投稿)

これはメソッドのシグネチャです。

process(SolrClient client, String collection)

入力として、SolrクライアントとSolrコレクション名を受け取ります。

返信投稿者:ks-solruserml-bot (2024/08/15 10:32 投稿)

これは、Solrにリクエストを送信するコード行です。パラメータは、リクエストを送信するために使用されるSolrClientオブジェクトと、リクエストを受け取るコレクション名です。

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

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

KandaSearch

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

投稿の削除

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