如何在solr上搜索一个字段中的多个单词?

How to search multiple words in one field on solr?

我在 solr 中有一个类型为文本列表的字段。

field1:{"key1:val1,key2:val2,key3:val3", "key1:val1,key2:val2"}

我想形成一个查询,这样当我搜索 key1:val1 and key3:val3 时,我得到的结果同时包含两个字符串,即 key1:val1 and key3:val3.

我应该如何形成查询?

您可以对 fq 使用 AND。

喜欢:

fq=key1:val1 AND key3:val3

使用此过滤器查询,您将仅获得 key1 = val1 AND key3 = val3 的记录。

如果这些是多值字段中的值,则不能 - 直接。您必须使用诸如突出显示之类的东西来告诉您 Solr 在哪里匹配它。

没有办法告诉 Solr "I only want the value that matched inside this set of values"。

如果这是查询索引的必要方式,请将值作为单独的文档索引,而不是在单独的集合中。在那种情况下,您必须改为记录,一份 field1:"key1:val1,key2:val2,key3:val3" 和一份 key1:val1,key2:val2.