我有两种类型的solr查询。一个使用EDisMax解析器,另一个使用标准查询解析器作为默认值。以下是我使用的2个查询。查询的目的是不包含以下单词ELM,PST的文档六月。
EDisMax查询
q = content:( - EML -PST -June)或contentenstem:( - EML -PST -June)& start = 0& rows = 25 & defType = edismax& fl = content filename
它产生大约12232个结果;其中4292个文档结果包含EML或PST或June.So 4292结果文档错误的任何给定查询字符串。
标准解析器查询
查询:q =大小:[0 TO *]& fq = content :( -EML -PST -June)& fq = contentenstem :( -EML -PST -June)& start = 0& rows = 25& fl =内容文件名
它产生约7940个结果。
为什么此查询的EDisMax查询失败;如何使用EDisMax解析器查询获得正确的结果
如果我们知道EDisMax和标准查询解析器如何解析AND&或者对文档进行布尔查询,我们可以得到不同解析器出现不同文档计数的原因的答案。
答案 0 :(得分:2)
在EDisMax查询中将OR
切换为AND
。 OR
和AND
采取不同的行动:
OR
会导致结果符合您的一个或两个限制(对于内容和内容项)。
AND
更严格:结果必须符合这两项限制。