Solr:查询2个不同类型的相关多值字段

时间:2013-05-07 06:51:12

标签: solr lucene

我的产品文档中有2个多值字段: -

  1. 功能
  2. Features_Score
  3. 功能字段类型:字符串)具有该产品的多个功能。每个要素都有一个字符串值。 Features_Score type:integer )是一个包含相应要素得分的并行多值字段。

    显然,两个领域都有相同的号码。条目

    现在我想像这样查询solr: -

    向我提供所有这些产品( solr docs ),其中功能:'耐用' features_score> '10'即可。

    我希望此查询返回所有具有耐久性和耐久性功能的产品,该产品的得分应高于10。

    但是,这不会返回预期的结果,因为要素和features_score字段之间没有映射(在索引级别)。

    我该如何实现? Solr有没有内置的支持来做这个?

1 个答案:

答案 0 :(得分:2)

这可以通过定义dynamic fields来实现。

您需要修改架构,将{feature name}_feature字段作为动态字段名称,并将得分作为其值。
这将帮助您将要素与其得分进行映射。

e.g。

durability_feature=11

Schema.xml的

<dynamicField name="*_feature"  type="int"  indexed="true"  stored="true"/>

因此,您可以使用相应的功能评分输入durability_feature数据。

过滤器查询将能够匹配精确的映射fq=durability_feature > 10