Solr 使用';在';和';不在';同一领域

Solr 使用';在';和';不在';同一领域,solr,solr-query-syntax,Solr,Solr Query Syntax,我是Solr的新手,我正在尝试创建一个查询,该查询将返回在“成分”字段(以制表符分隔的字符串)中包含一个或多个值的所有文档,但排除在同一字段中包含其他值的文档。我们正在运行Solr 4.9 下面是模式: <fields> <field name="_version_" type="long" indexed="true" stored="true" multiValued="false"/> <field name="uri" type="string" ind

我是Solr的新手,我正在尝试创建一个查询,该查询将返回在“成分”字段(以制表符分隔的字符串)中包含一个或多个值的所有文档,但排除在同一字段中包含其他值的文档。我们正在运行Solr 4.9

下面是模式:

<fields>  
<field name="_version_" type="long" indexed="true" stored="true" multiValued="false"/>
<field name="uri" type="string" indexed="true" stored="true" required="true" multiValued="false" /> 
<field name="title"  type="text_general"    indexed="true"  stored="true" multiValued="false" />
<field name="text"  type="text_general"    indexed="true"  stored="true" multiValued="false" />
<field name="ingredient"  type="tab-delimited-string"    indexed="true"  stored="true" multiValued="false" />
在搜索和阅读了一些手册后,我得出了以下结论:

title:pizza AND ingredient:"olive oil"  AND -ingredient:("beer" "potatoes")
但它不起作用。我也试过下面的东西,但也不起作用

title:pizza AND ingredient:"olive oil"  AND -ingredient:"beer " "potatoes"
title:pizza AND ingredient:"olive oil"  AND -ingredient:"beer" AND -ingredient:"potatoes"
我得到的结果是在配料领域有土豆或啤酒。有什么想法吗?我是不是遗漏了什么


谢谢

我想出了这个办法,我只需要在搜索词前加上*

title:pizza AND ingredient:"olive oil"  AND -ingredient:(*beer* *potatoes*)

试试看:
title:pizza和配料:(“橄榄油”而不是(啤酒或土豆))
刚刚试过,没有效果,但谢谢你的努力。这可能与我不知道的某种类型的缓存有关吗?
成分是什么类型的字段?你能发布你的模式吗?用模式更新问题我能让成分字段多值化吗?
title:pizza AND ingredient:"olive oil"  AND -ingredient:(*beer* *potatoes*)