1

有序我的意思是 term1 在文档中总是在 term2 之前。

我有两个文件: 1.“按顺序表示 term1 在文档中总是出现在 term2 之前” 2.“按顺序表示 term2 在文档中总是出现在 term1 之前”

如果我进行查询:

"term1 term2"~Integer.MAX_VALUE

我的结果是:2个文件

如何查询得到一个结果(仅当 term1 出现在 term2 之前):“按顺序排列,我的意思是 term1 在文档中总是出现在 term2 之前”

有任何想法吗?

4

2 回答 2

1

您将需要使用SpanNearQuery
这匹配彼此靠近的跨度。可以指定 slop、干预不匹配位置的最大数量,以及匹配是否需要按顺序排列

但是,使用 Solr 的 dismax 和 edismax 查询解析器使用短语查询,因此匹配始终是无序的。

SurroundQueryParser支持 Span 查询,可以选择对有序和无序的术语进行查询,但语法略有变化。
尽管此查询解析器仅适用于主干。

更多信息@ http://www.lucidimagination.com/blog/2009/02/22/exploring-query-parsers/

于 2011-11-06T17:35:18.417 回答
0

查找跨度查询。http://www.lucidimagination.com/blog/2009/07/18/the-spanquery/

于 2011-11-04T06:41:27.670 回答