按顺序,我的意思是term1将始终位于文档中的term2之前。
我有两份文件: 1.“按顺序,我的意思是term1将始终在文档中的term2之前” 2.“通过命令,我的意思是term2将始终位于文档中的term1之前”
如果我进行查询:
"term1 term2"~Integer.MAX_VALUE
我的结果是:2个文件
如何查询有一个结果(仅当term1在term2之前): “按顺序,我的意思是term1将始终位于文档中的term2之前”
任何想法?
答案 0 :(得分:1)
您需要使用SpanNearQuery
这匹配彼此靠近的跨度。可以指定slop,干预不匹配位置的最大数量,以及匹配是否需要按顺序。
但是,使用Solr的dismax和edismax查询解析器使用短语查询,因此匹配始终是无序的。
SurroundQueryParser支持Span查询,可以选择对有序和无序术语进行查询,语法略有变化。
虽然此查询分析程序仅适用于主干。
更多信息@ http://www.lucidimagination.com/blog/2009/02/22/exploring-query-parsers/
答案 1 :(得分:0)