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