如何根据solr中的多个字段搜索多个值?
如何根据solr中的多个字段搜索多个值 我的设想: 目前在schema.xml中,我正在使用如何根据solr中的多个字段搜索多个值?,solr,solrj,solr-schema,Solr,Solrj,Solr Schema,如何根据solr中的多个字段搜索多个值 我的设想: 目前在schema.xml中,我正在使用和 <copyField source="COL1" dest="defaultsearch"/> <copyField source="COL2" dest="defaultsearch"/> 及 及 defaultsearch 例如: 我的搜索查询类似于q=Good Boy 我必须获取像Good和Boy这样的记录,它们应该出现在COL1或COL2中 但对我来说,它给
和
<copyField source="COL1" dest="defaultsearch"/>
<copyField source="COL2" dest="defaultsearch"/>
及
及
defaultsearch
例如:
我的搜索查询类似于q=Good Boy
我必须获取像Good和Boy这样的记录,它们应该出现在COL1或COL2中
但对我来说,它给出了与预期相同的结果,如在COL1中出现的良好和在COL2中出现的男孩或在COL2中出现的良好和在COL1中出现的男孩
请建议我如何找到Good和Boy应在COL1或COL2中出现的结果。如果您需要COL1和COL2的精确匹配,则可以执行以下操作(假设COL1和COL2是字符串):- 如果您不需要精确匹配,并且短语应以任何顺序包含“Good”和“Boy”,请尝试以下方法(未经测试):-
谢谢你的回复。我不明白你的意思。请举例说明。请提供您当前的查询,并告诉我们它的功能以及您认为它应该做什么!?很抱歉内容更新为附加信息。感谢您的回答。对于q=(COL1:*好孩子*或COL2:好孩子),它不会给出预期的结果。因此,我所做的是q=((COL1:*好*和COL1:*男孩*)或(COL2:*好*和COL2:*男孩*)
<fieldType name="text_search" class="solr.TextField" positionIncrementGap="100">
<analyzer>
<tokenizer class="solr.WhitespaceTokenizerFactory" />
<filter class="solr.LowerCaseFilterFactory" />
</analyzer>
</fieldType>
<defaultSearchField>defaultsearch</defaultSearchField>
q=(COL1:"Good Boy" OR COL2:"Good Boy")
q=(COL1:*Good Boy* OR COL2: *Good Boy*)