2012-05-29 2 views
0

는 (의 모든 문서에 하나의 필드를 가정하자) :
1 - ABCD
2 - AB를
3 - CDAB루씬 : 문구로 시작 일치 필드 다음 문서의 경우

(AD는 별개 용어)

문서 1과 2 만 일치하는 "AB"쿼리를 만들고 싶습니다. "필드 시작"특수 토큰을 삽입하여 나를 도와 줄 수는 있지만 필자는이를 피하는 것이 좋습니다 모든 데이터의 색인을 다시 생성하며 약간 추한 것입니다.)

어떻게 달성 될 수 있습니까?

답변

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