solr
のダイナミックフィールドを使用してフィルタシステムを開発しようとしています。これらのダイナミックフィールドは製品によって異なる場合があり、フィルタフィールドの認識に役立つ接頭辞はattribute_filter_
です。検索クエリがあるので、私はこれらの動的なフィールドに基づいて面白い結果を得たいと思っています。例えばソルのファセットとしてのダイナミックフィールド
私の検索クエリがDOC 1およびDOC2と一致したとき、私はsolr
{ID:1, attribute_filter_color:"white", attribute_filter_brand:"Dell"}
{ID:2, attribute_filter_color:"red", attribute_filter_category:"electronics"}
{ID:3, attribute_filter_size:"mobiles", attribute_filter_brand:"samsung"}
にドキュメントなど3つの製品を持って、私が欲しい色のみ、ブランドやカテゴリをフィルタリングし、その面のフィールドはattribute_filter_color
あり、attribute_filter_brand
とattribute_filter_category
。
私の検索クエリがドキュメント2とDOC3に一致し、私が欲しい色、サイズ、カテゴリやブランドをフィルタリングし、その面のフィールドはattribute_filter_color
、attribute_filter_size
、attribute_filter_category
とattribute_filter_brand
です。
私の検索クエリがdoc1とdoc3と一致すると、フィルタの色、ブランド、サイズが必要なので、ファセットフィールドはattribute_filter_color
,attribute_filter_brand
、attribute_filter_size
です。
また、これらのフィルタは、10個以上の合計で約300個の製品にすることができます。これにより、GET URL
の限界を超える可能性のある300個のファセットフィールドを持つGET URL
を作成するための別の問題が発生します。
このjira ticketは、この状況で正規表現がどのように役立つ可能性があるかを示しています。
Solrは、GET引数の長さの問題を回避するために、すべてのパラメータをPOSTデータとして提供します(ほとんどのクライアントはデフォルトでPOSTを使用します)。 – MatsLindh