我有 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 布尔查询,我们可能会得到为什么不同的解析器会出现不同的文档计数的答案。