0

我有 2 种类型的 solr 查询。一种使用 EDisMax 解析器,另一种使用标准查询解析器作为默认值。以下是我使用的 2 个查询。查询的目的是不包含以下单词 ELM、PST、June 的文档。

EDisMax 查询

q= 内容:(-EML -PST -June) 或 contentenstem:(-EML -PST -June)&start=0&rows=25 &defType=edismax&fl=content 文件名

它产生大约 12232 个结果;其中 4292 个文档结果包含 EML 或 PST 或 June 的任何给定查询字符串。因此 4292 个结果文档是错误的。

标准解析器查询

查询:q=size:[ 0 TO * ]&fq=content:( -EML -PST -June )&fq=contentenstem:( -EML -PST -June )&start=0&rows=25&fl=内容文件名

它产生大约 7940 个结果。

为什么此查询的 EDisMax 查询失败;如何使用 EDisMax 解析器查询获得正确的结果

如果我们知道 EDisMax 和 Standard 查询解析器如何解析文档上的 AND & OR 布尔查询,我们可能会得到为什么不同的解析器会出现不同的文档计数的答案。

4

1 回答 1

2

切换ORANDEDisMax 查询。ORAND采取不同的行动:

OR将导致满足您的一项或两项限制的结果(对于内容和内容干)。

AND更严格:结果必须同时满足这两个限制。

于 2013-01-16T04:21:15.710 回答