首页 文章

动态字段作为solr中的facet

提问于
浏览
1

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

例如,我在 solr 中有3个产品作为文档

{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"}

当我的搜索查询与doc 1和doc2匹配时,我只想过滤器颜色,品牌和类别,因此facet字段是 attribute_filter_colorattribute_filter_brandattribute_filter_category .

当我的搜索查询与doc 2和doc3匹配时,我想要过滤器颜色,大小,类别和品牌,因此facet字段是 attribute_filter_colorattribute_filter_sizeattribute_filter_categoryattribute_filter_brand .

当我的搜索查询与doc 1和doc3匹配时,我想要过滤器颜色,品牌和大小,因此facet字段是 attribute_filter_colorattribute_filter_brandattribute_filter_size .

这些过滤器总共可超过10 ^ 5个产品 . 这会产生另一个问题,即制作一个带有300个facet字段的 GET URL ,这可能超过 GET URL 的限制 .

这个jira ticket显示了正则表达式在这种情况下如何帮助 .

1 回答

  • 0

    我的解决方案是将字段名称索引到另一个字段,这样您也可以使用包含字段的文档 "facet_fields": ["attribute_filter_color","attribute_filter_brand"] .

    在您的文档结果集中生成一个方面,然后在新查询中使用该结果来生成您所面临的字段的方面 - facet_fields 字段将快速计算并返回 .

相关问题