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

Lucene:匹配以短语开头的字段,lucene,lucene.net,Lucene,Lucene.net,对于以下文档(假设每个文档中只有一个字段): 1-A B C D 2-ab 3-CDAB (A-D是不同的术语) 我想创建一个只匹配文档1和文档2的查询“ab”。我知道我可以插入一个特殊的“字段开头”标记来帮助我,但我更愿意避免这种情况(需要重新索引所有数据,而且有点难看) 如何才能做到这一点呢?找到了答案。诀窍是将a与a结合起来 SpanNearQuery spanNearQuery = new SpanNearQuery(new[] { new SpanTermQuery(new Ter

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

(A-D是不同的术语)

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


如何才能做到这一点呢?

找到了答案。诀窍是将a与a结合起来

  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);