List 如何在solr列表字段中搜索精确的列表匹配
比如说,, 我在我的模式存储列表中有一个列表字段(solr.TextField),如下所示 1) {水果:[“苹果”、“芒果”、“橙子”] 2) {水果:[“芒果”、“苹果”]} 我的搜索关键词列表是:[“苹果”,“芒果”] 什么查询可以获得只包含给定值“Apple”、“Mango”的精确列表匹配 这里它应该给我第二个文件,即{水果:[“芒果”,“苹果”]} 我试着用水果:(“苹果”“芒果”),但不起作用,List 如何在solr列表字段中搜索精确的列表匹配,list,solr,field,List,Solr,Field,比如说,, 我在我的模式存储列表中有一个列表字段(solr.TextField),如下所示 1) {水果:[“苹果”、“芒果”、“橙子”] 2) {水果:[“芒果”、“苹果”]} 我的搜索关键词列表是:[“苹果”,“芒果”] 什么查询可以获得只包含给定值“Apple”、“Mango”的精确列表匹配 这里它应该给我第二个文件,即{水果:[“芒果”,“苹果”]} 我试着用水果:(“苹果”“芒果”),但不起作用, 它给了我两个文档。只需使用一个简单的布尔查询(水果:芒果和水果:苹果) 更新: (fru
它给了我两个文档。只需使用一个简单的布尔查询
(水果:芒果和水果:苹果)
更新:
(fruits:Mango AND fruits:Apple AND -fruits:orange)
它也将匹配第一个文档,例如:(水果:芒果和水果:苹果和-水果:橙色)。解决一个特定案例无助于解决一般问题。你们需要mv字段的所有可能值来建立这样的查询吗?谢谢@Oyeme,但我如何才能消除其他文档中的所有值。我只有关键字列表。例如,我有其他文档{fruits:[“Apple”,“Mango”,“banana”]}您能够修改模式吗?如果是,一个黑客解决方案可能是多值字段的保留计数,因此对于doc1,它将是两个字段,{fruits:[“Apple”、“Mango”、“Banana”],fruits\u count:3}当您查询两个值Mango和Apple时,您还提供了额外的条件fruits\u count:2或任何您想要的值