我正在使用在Tomcat 7.0.29上运行的Solr 4.4.0。solrconfig.xlm已交付(当然,Solr主目录除外)。我可以传递schema.xml,尽管我怀疑这是否会有所帮助,如下所示。
如果我在文本中选择所有包含“ russia”的文档(这是默认字段),即,如果执行查询“ russia”,则只会找到1个文档,这是正确的。
如果我选择所有文本中包含“ web”的文档(“ web”),则结果为29,这也是正确的。
如果我搜索不包含“ russia”(“ NOT(russia)”)的所有文档,则结果仍然正确(202)。
如果我搜索所有包含“ web”但不包含“ russia”的文档(“ web AND NOT(russia)”),结果将再次正确(28,因为包含“ russia”的文档还包含“网络”)。
但是,如果我搜索所有包含“ web”或不包含“ russia”的文档(“ web OR NOT(russia)”),尽管我应该得到203个匹配项(整个集合),结果仍然是28。
有没有人得到解释?
有关信息,如果我在查询中的某处未使用NOT,则AND和OR可以正常工作,即:“ web AND russia”-> OK“ web OR russia”-> OK
我从Yonik Seeley得到了一个解决方案,该解决方案是将NOT(russia)转换为(*:* -russia),以便可以使用正值(:即所有文档)减去(-russia)。该解决方案效果很好。我仍然认为,修改解析器是一个好主意,这样,无需翻译就可以满足“ web OR NOT(russia)”的严格要求。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句