Lucene:匹配以短语开头的字段

时间:2012-05-29 12:06:01

标签: lucene lucene.net

对于以下文件(假设每个文档中都有一个字段):
1 - A B C D
2 - A B
3 - C D A B

(A-D是不同的术语)

我想创建一个只与文档1和2匹配的查询“AB”。我知道我可以插入一个特殊的“字段开头”令牌来帮助我,但我更愿意避免这种情况(需要重新编制索引)所有的数据,也有点难看。)

如何实现?

1 个答案:

答案 0 :(得分:0)

想出来。诀窍是将SpanNearQuerySpanFirstQuery结合起来。

  SpanNearQuery spanNearQuery = new SpanNearQuery(new[] { new SpanTermQuery(new Term(field, "A")), new SpanTermQuery(new Term(field,"B")) },0, true);
  SpanFirstQuery spanFirstQuery = new SpanFirstQuery(spanNearQuery, 2);