如何在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中。
答案 0 :(得分:0)
如果你需要在COL1和COL2上完全匹配,那么你可以执行以下操作(假设COL1和COL2是字符串): -
q=(COL1:"Good Boy" OR COL2:"Good Boy")
如果您不需要完全匹配且该短语应按任何顺序包含“Good”和“Boy”,请尝试以下(未经测试): -
q=(COL1:*Good Boy* OR COL2: *Good Boy*)