如何在solr中针对多个字段搜索多个值?

时间:2012-12-13 12:26:04

标签: solr solrj solr-schema

如何在solr中针对多个字段搜索多个值?

我的情景:

目前在schema.xml中,我正在使用<solrQueryParser defaultOperator="AND"/>

<copyField source="COL1" dest="defaultsearch"/>
<copyField source="COL2" dest="defaultsearch"/>

<fieldType name="text_search" class="solr.TextField" positionIncrementGap="100">
 <analyzer>
   <tokenizer class="solr.WhitespaceTokenizerFactory" />
   <filter class="solr.LowerCaseFilterFactory" />      
 </analyzer>
</fieldType>

<defaultSearchField>defaultsearch</defaultSearchField>

示例:

我的搜索查询类似于 q =好孩子

我必须获取像 Good Boy 这两个记录应该出现在COL1或COL2中的记录。

但对我来说,它会得到预期的结果,其中包括COL1中存在的 Good 和COL2中存在的 Boy Good 中存在的其他结果COL1和男孩出现在COL1中。

请建议我如何找到结果,良好男孩应该出现在COL1或COL2中。

1 个答案:

答案 0 :(得分:0)

如果你需要在COL1和COL2上完全匹配,那么你可以执行以下操作(假设COL1和COL2是字符串): -

q=(COL1:"Good Boy" OR COL2:"Good Boy")

如果您不需要完全匹配且该短语应按任何顺序包含“Good”和“Boy”,请尝试以下(未经测试): -

q=(COL1:*Good Boy* OR COL2: *Good Boy*)