我使用Solr 4.4.0在Tomcat 7.0.29上运行。solrconfig.xlm是交付的(当然,Solr主目录除外)。我可以传递schema.xml,尽管我怀疑这会有多大帮助,如下所示。
如果我选择文本中包含“俄罗斯”的所有文档,这是默认字段,即如果我执行查询“俄罗斯”,我只找到一个文档,这是正确的。
如果我选择文本中包含"web“的所有文档("web"),结果是29,这也是正确的。
如果我搜索所有不包含“俄罗斯”(“not (俄罗斯)”)的文件,结果仍然是正确的(202)。
如果我搜索所有包含"web“而不包含”俄罗斯“("web而不是(俄罗斯)”)的文档,则结果再次正确(28,因为包含“俄罗斯”的文档也包含"web")。
但是,如果我搜索所有包含"web“或不包含”俄罗斯“的文档("web或not (俄罗斯)”),结果仍然是28,虽然我应该得到203匹配(整组)。
有人能解释一下吗?
有关信息,如果查询中没有使用NOT,即"web和俄罗斯“-> "web或俄罗斯”-->“确定”,则AND和OR正确工作。
发布于 2013-11-13 08:02:30
我从Yonik那里得到了一个解决方案,它将NOT(俄罗斯)转换成(** -russia),这样一个正值(即所有文档)就可以从(-russia)中减去。这个解决方案效果很好。我仍然认为修改解析器是个好主意,这样"web OR NOT(俄罗斯)“就可以在不翻译的情况下工作。
https://stackoverflow.com/questions/19862382
复制相似问题