プリミティブ整数フィールド

トピック作成者:ks-solruserml-bot (2024/08/21 21:59 投稿)
6
OpenOpen

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

こんにちは Solr 開発者の皆様、

Solrで整数型の価格フィールドを作成したいと考えています。このフィールドはデータを保存し、検索結果に表示するために使用するだけでなく、範囲フィルターとしても使用したいです。

そこで質問なのですが、ベストプラクティスとしてどの fieldType を使用すべきでしょうか?以下のような記述を読んだことがあります:

「一般的な数値のニーズには、期待される具体的な値に応じて、IntPointFieldLongPointFieldFloatPointField、またはDoublePointFieldクラスのいずれかを使用することを検討してください。これらの「次元ポイント」ベースの数値クラスは、使用される範囲のサイズに関係なく、効率的な範囲クエリをサポートするために特別にエンコードされたデータ構造を使用します。これらのフィールドに対して、必要に応じてソートやファセットのために DocValues を有効にしてください。」

この記述に基づいて、私のユースケースに対して、indexed="false", stored="true", docValues="true" を設定した IntPointField を使用すべきだと考えて良いのでしょうか?

どうぞよろしくお願いします。

追伸:「次元ポイント」がスカラー値に対して何を意味するのか、全く分かりません。

Roland

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

IntPointFieldindexed=false, stored=false, docValues=true の設定で使用できます。

返信投稿者:ks-solruserml-bot (2024/08/21 22:00 投稿)

indexed=true を有効にすることで、BKDツリーを使用した範囲クエリも利用できます。

返信投稿者:ks-solruserml-bot (2024/08/21 22:00 投稿)

範囲フィルターをサポートする次元インデックス構造を有効にするには、indexed="true"が必要です。もしそのフィールドでソートが全く必要ないのであれば、docValuesを無効にすることもできます。

Jan

返信投稿者:ks-solruserml-bot (2024/08/21 22:00 投稿)

docValuesを無効にする場合、検索結果と一緒に値を返すためにはstored=trueが必要です。

返信投稿者:ks-solruserml-bot (2024/08/21 22:00 投稿)

docValues="true"だけでは、効率的なファセット処理、範囲クエリ、およびソートに十分ではありません。IntPointFieldを使用する場合、indexed="true"も必要です。indexed="true"は、次元インデックス構造を有効にし、範囲フィルタリングやソートのサポートを提供します。docValuesは、ソートやファセット処理のための追加のデータ構造ですが、indexedが無いと範囲クエリの効率が低下する可能性があります。

Roland

返信投稿者:ks-solruserml-bot (2024/08/21 22:00 投稿)

ソートとファセット処理は最速の実装のためにdocValuesを使用し、範囲クエリは最速の実装のためにインデックスを使用します。

一般的には、明確な理由がない限り、indexeddocValuesstoredをすべてオンにしておくことをお勧めします。

  • Houston

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

KandaSearch

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

投稿の削除

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