0
对于以下文档(假设在每个文档的单个字段):
1 - ABCD
2 - AB
3 - CDABLucene的:匹配字段与一个短语开始
(AD是不同的条款)
我想创建一个查询“AB”,只匹配文档1和2.我知道我可以插入一个特殊的“字段开始”令牌来帮助我,但我更喜欢避免(需要重新索引所有数据,并且也有点难看)。
这怎么能实现?
对于以下文档(假设在每个文档的单个字段):
1 - ABCD
2 - AB
3 - CDABLucene的:匹配字段与一个短语开始
(AD是不同的条款)
我想创建一个查询“AB”,只匹配文档1和2.我知道我可以插入一个特殊的“字段开始”令牌来帮助我,但我更喜欢避免(需要重新索引所有数据,并且也有点难看)。
这怎么能实现?
想通了。诀窍是将SpanNearQuery与SpanFirstQuery合并。
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);