我的产品文档中有2个多值字段: -
功能字段(类型:字符串)具有该产品的多个功能。每个要素都有一个字符串值。 Features_Score ( type:integer )是一个包含相应要素得分的并行多值字段。
显然,两个领域都有相同的号码。条目
现在我想像这样查询solr: -
向我提供所有这些产品( solr docs ),其中功能:'耐用'和 features_score> '10'即可。
我希望此查询返回所有具有耐久性和耐久性功能的产品,该产品的得分应高于10。
但是,这不会返回预期的结果,因为要素和features_score字段之间没有映射(在索引级别)。
我该如何实现? Solr有没有内置的支持来做这个?
答案 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