solr中作为刻面的动态场

solr中作为刻面的动态场,solr,faceted-search,Solr,Faceted Search,我正在尝试开发一个使用solr中的动态字段的过滤系统。这些动态字段可能因产品而异,并具有前缀属性\u filter\uu,以帮助我识别过滤器字段。因此,给定一个搜索查询,我希望得到基于这些动态字段的分面结果 例如,我在solr {ID:1, attribute_filter_color:"white", attribute_filter_brand:"Dell"} {ID:2, attribute_filter_color:"red", attribute_filter_category:"el

我正在尝试开发一个使用
solr
中的动态字段的过滤系统。这些动态字段可能因产品而异,并具有前缀
属性\u filter\uu
,以帮助我识别过滤器字段。因此,给定一个搜索查询,我希望得到基于这些动态字段的分面结果

例如,我在
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"}
当我的搜索查询匹配Doc1和doc2时,我只需要过滤器颜色、品牌和类别,因此方面字段是
属性过滤器颜色
属性过滤器品牌
属性过滤器类别

当我的搜索查询匹配Doc2和doc3时,我需要过滤器颜色、大小、类别和品牌等方面的字段是
attribute\u filter\u color
attribute\u filter\u size
attribute\u filter\u category
attribute\u filter\u brand

当我的搜索查询匹配Doc1和doc3时,我需要过滤器颜色、品牌和大小,因此方面字段是
attribute\u filter\u color
attribute\u filter\u brand
attribute\u filter\u size

此外,这些过滤器在10^5个产品上总共可以达到300个。这为使用300个方面字段创建
GET URL
创建另一个问题,这可能会超过
GET URL
的限制


这显示了正则表达式在这种情况下是如何起作用的。

我的解决方案是将字段名索引到一个附加字段,这样您就有了
“facet\u字段”:[“attribute\u filter\u color”,“attribute\u filter\u brand”]
,用于包含字段的文档


在文档结果集中生成一个方面,然后在新查询中使用该结果在您感兴趣的字段中生成方面。这将是一个额外的查询,但应适当扩展。代价高昂的部分是,你要在大量不同的字段上刻面,
facet\u字段
可以快速计算并返回。

虽然这不是一个答案(而且也有自己的问题),但Solr支持将所有参数作为POST数据提供(大多数客户端默认使用POST)为了避免GET参数长度的问题,您知道Solr是否已经为此实现了一种机制。动态场的刻面?当涉及到刻面时,动态场没有什么特别的。它将和其他领域一样有效。