マルチバリューフィールドでのcrossCollection

トピック作成者:ks-solruserml-bot (2024/08/11 16:58 投稿)
4
CloseClose

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

こんにちは、

シャーディングを利用するためにcrossCollectionジョインを使おうとしています。
Personコレクションとdocumentsコレクションをジョインして、pdfタイプの文書を持つ人々を見つけようとしています。ですが、結果として誰も返ってこないことに気付き、documentコア内のPersonIDがマルチバリューのフィールドであることがわかりました。

<field name="PersonID" type="string" indexed="true" stored="true" docValues="true" multiValued="true" />

私のクエリは次のようになっています。

{!join method=crossCollection from=PersonID to=PersonID fromIndex=document v='type:(pdf)'}

マルチバリューのフィールドではこの機能が動作しないのでしょうか?他にどのようなオプションがありますか?

よろしくお願いします。
Sergio Maroto

返信投稿者:ks-solruserml-bot (2024/08/11 16:58 投稿)

参考までに、最近、クロスコレクションジョインを使用しました。その際、2つのフィールドが「マルチバリュー」として定義されていることを確認しましたが、それが必須条件かどうかは確かではありません。

また、私が直面した問題の一つは、documentsコレクションが5つのシャードにシャーディングされているのに対し、personコレクションは単一のシャードにしか存在していなかったことです。ジョインが動作するのは、documentsコレクションのドキュメントがpersonコレクションと同じシャードに存在している場合だけでした。personコレクションはかなり小さかったため、この問題を解決するために、personコレクションを5つのシャード全てにレプリケートしました。

現在、私が説明した通りに動作しているかどうかを確認している最中ですが、これまでのところは順調です。

Ron Haines

返信投稿者:ks-solruserml-bot (2024/08/11 16:58 投稿)

こんにちは。

マルチバリューの fromField に関する件についてですが、org.apache.solr.search.join.CrossCollectionJoinQuery.CrossCollectionJoinQueryWeight#createCloudSolrStream メソッドは、fromField でソートされたエクスポートハンドラーを要求します。

params.set(CommonParams.FL, fromField);
params.set(CommonParams.SORT, fromField + " asc");
params.set(CommonParams.QT, "/export");

しかし、エクスポートハンドラーはマルチバリューのフィールドでソートしないため、Solrのドキュメント に記載されているように、ソート基準として指定することができません。そのため、どこかにエラーがある可能性があります。

--
よろしくお願いします、
Mikhail Khludnev

返信投稿者:ks-solruserml-bot (2024/08/11 16:58 投稿)

お二人ともご返信ありがとうございます。

私は Solr 8.10.1 を使用しており、フィールドをマルチバリューとして定義すると、うまく動作しませんでした。
マルチバリューを使おうとしても、うまくいきませんでした。

Ronさん、マルチバリューのフィールドで動作するとおっしゃっていましたが、どの Solr バージョンを使用していますか?
それを確認していただけますか?そして、もう少し詳しい情報を教えていただけると助かります。

よろしくお願いします。
Sergio

返信投稿者:ks-solruserml-bot (2024/08/11 16:59 投稿)

Solr 8.11 および 9.1 を使用しています。

了解しました。おそらく次のようなクエリを実行しています: {!join from=group_id_mv fromIndex=primary_rollup to=group_member_id score=none}

ここで、group_id_mvmultiValued='true' であり、group_member_idmultiValued='true' です。

必要なドキュメントが同じシャードに存在していることは確かですか?それが要件であると考えています。

Ron

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

KandaSearch

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

投稿の削除

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