2013-05-07 60 views
0

我有我的产品DOC 2个多值字段: -Solr的:查询不同类型的2个相关的多值字段

  1. 特点
  2. Features_Score

特色领域类型:字符串)具有该产品的多个功能。每个功能都有一个字符串值。 Features_Score类型:整数)是一个并行多值字段,包含相应特征的得分。

很显然,这两个字段都会有相同的号码。项

的现在,我想查询Solr的是这样的: -

给我所有这些产品(Solr的文档)其中功能: '耐用'features_score> '10'

我想这个查询返回的所有产品功能的耐用性和耐用性特点该产品应高于10

分数,但,因为没有映射(在索引级别,这将不会返回预期的结果)在特征和特征_分区之间。

我该如何实施? Solr有没有内置的支持?

回答

2

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

您需要修改架构以使其字段的值为{feature name}_feature,并将其作为动态字段名称和分数。
这将帮助您将该功能与其分数相映射。

例如

durability_feature=11 

Schema.xml的

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

这样你就可以输入数据作为durability_feature与各自的特征分数。

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