基于OR的Solr查询决策

时间:2015-09-16 16:34:51

标签: java solr

如果第一个查询没有返回任何结果,是否可以在OR语句中使用给定查询之一?

给出以下Solr查询:name:Mi OR name:Mi*

如果左侧查询未返回任何文档,请尝试OR语句的右侧。

我已经尝试过qf而没有取得好成绩。

2 个答案:

答案 0 :(得分:0)

您对OR运算符的期望是条件行为。 Solr中定义的运算符(ORAND)分别用于执行结果的 union 交集。您无法实现条件行为。

Solr Boolean Operators

答案 1 :(得分:0)

Solr(Lucene实际上)在MUST,SHOULD和MUST NOT子句中起作用。所以,你所要求的并不是直接存在的。

但是,您可以通过排名适当地执行类似的操作。因此,您将获得原始值字段并将其提高,然后将您的值复制到 - 比如 - edgengram字段中以进行后缀匹配并将其提升得更少。完美匹配的任何结果都将浮动到顶部。