0

如何针对 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

我必须获取像GoodBoy应该出现在 COL1 或 COL2 中的记录。

但对我来说,它给出了预期的结果,并提供了额外的结果,例如COL1中的Good present 和 COL2 中的Boy或 COL2 中的Good和 COL1 中的Boy

请建议我如何在 COL1 或 COL2 中找到GoodBoy的结果。

4

1 回答 1

0

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

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

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

q=(COL1:*Good Boy* OR COL2: *Good Boy*) 
于 2012-12-18T04:18:45.910 回答