Lucene / Solr意外查询答案

时间:2013-11-08 15:15:35

标签: parsing solr lucene

我正在使用在Tomcat 7.0.29上运行的Solr 4.4.0。 solrconfig.xlm已交付(当然,Solr主目录除外)。 我可以传递schema.xml,但我怀疑这会有多大帮助,如下所示。

如果我选择文本中包含“russia”的所有文档,这是默认字段,即如果我执行查询“russia”,我只找到1个文档,这是正确的。

如果我选择文本(“web”)中包含“web”的所有文档,则结果为29,这也是正确的。

如果我搜索所有不包含“russia”(“NOT(俄罗斯)”)的文件,结果仍然正确(202)。

如果我搜索包含“web”并且不包含“russia”(“web AND NOT(俄罗斯)”)的所有文档,结果再次正确(28,因为包含“russia”的文档还包含“web”)。

但是如果我搜索所有包含“web”或不包含“russia”(“web OR NOT(俄罗斯)”)的文档,结果仍然是28,但我应该得到203个匹配(整套)

有没有人得到解释?

有关信息,如果我在查询中不使用NOT,则AND和OR正常工作,即: “web AND russia” - >好 “web OR russia” - >行

1 个答案:

答案 0 :(得分:0)

我从Yonik Seeley那里得到了一个解决方案,即将NOT(俄罗斯)翻译成(*:* -russia),这样就可以使用正值(即所有文件)减去(-russia)。此解决方案非常有效。我仍然认为修改解析器是一个好主意,以便strainghtforward请求“web OR NOT(russia)”在没有翻译的情况下工作。