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