我在使用SOLR查询获得正确的结果时遇到问题。基本上,假设我希望所有英文文档包含字符串“toto”。http://127.0.0.1:8080/solr-webservice/query/?q=iso_lang_cd:en&ctnt_val:*toto*
问题是此查询向我发送了所有英文文档以及所有包含toto的文档。
我需要获取所有英文文件并包含TOTO的文件。我怎样才能做到这一点?我认为这是AND运算子的标准用法...
最佳答案
实际上,OR是Solr的默认查询运算符,并且您的查询的格式设置并不足以强制执行AND操作。为了实现AND行为,您可以采用以下格式之一指定查询:
+iso_lang_cd:en +ctnt_val:*toto*
iso_lang_cd:en && ctnt_val:*toto*
或者,您可以选择传递
q.op=AND
强制执行AND操作。另外,您可能要考虑使用Filter Queries,在这里可以对语言进行过滤。使用过滤器查询可以提高性能,但是请参考文档以获取更多详细信息。 q=ctnt_val:*toto*&qf=iso_lang_cd:en
请参阅Standard Query Parser以获得更多详细信息和良好的查询概述。