Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/solr/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
List 如何在solr列表字段中搜索精确的列表匹配_List_Solr_Field - Fatal编程技术网

List 如何在solr列表字段中搜索精确的列表匹配

List 如何在solr列表字段中搜索精确的列表匹配,list,solr,field,List,Solr,Field,比如说,, 我在我的模式存储列表中有一个列表字段(solr.TextField),如下所示 1) {水果:[“苹果”、“芒果”、“橙子”] 2) {水果:[“芒果”、“苹果”]} 我的搜索关键词列表是:[“苹果”,“芒果”] 什么查询可以获得只包含给定值“Apple”、“Mango”的精确列表匹配 这里它应该给我第二个文件,即{水果:[“芒果”,“苹果”]} 我试着用水果:(“苹果”“芒果”),但不起作用, 它给了我两个文档。只需使用一个简单的布尔查询(水果:芒果和水果:苹果) 更新: (fru

比如说,, 我在我的模式存储列表中有一个列表字段(solr.TextField),如下所示

1) {水果:[“苹果”、“芒果”、“橙子”]

2) {水果:[“芒果”、“苹果”]}

我的搜索关键词列表是:[“苹果”,“芒果”]

什么查询可以获得只包含给定值“Apple”、“Mango”的精确列表匹配

这里它应该给我第二个文件,即{水果:[“芒果”,“苹果”]}

我试着用水果:(“苹果”“芒果”),但不起作用,
它给了我两个文档。

只需使用一个简单的布尔查询
(水果:芒果和水果:苹果)

更新:

(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或任何您想要的值