"단어"와 "줄기"기능이있는 문서가 있습니다. 한 단어에는 여러 개의 줄기가있을 수 있으므로 위치 증분을 조작하는 "줄기"기능의 색인을 만듭니다.Lucene setPositionIncrement가 작동하지 않습니다.
FieldType type = new FieldType();
type.setIndexed(true);
type.setStored(true);
type.setOmitNorms(true);
type.setTokenized(true);
type.setStoreTermVectorOffsets(true);
type.setStoreTermVectorPositions(true);
type.setStoreTermVectors(true);
String join_token = tok.nextToken(); // token is like "stem1 stem2 stem3"
TokenStream stream = new WhitespaceTokenizer(Version.LUCENE_41, new StringReader(join_token));
PositionIncrementAttribute attr = stream.addAttribute(PositionIncrementAttribute.class);
attr.setPositionIncrement(0);
stream.addAttribute(OffsetAttribute.class);
stream.addAttribute(CharTermAttribute.class);
feature = new Field(name,
join_token,
type);
feature.setTokenStream(stream);
doc.add(feature);
당신은 그것을 저장할 수 있도록 내가 고정 문자열 값으로 필드를 초기화 코드에서보고, 다음으로 토큰 스트림을 통과 (나는 여기 어딘가에 유래에서 그 해결책을 발견) : 나는 다음과 같이 그렇게 . 줄마다 각 join_token에 대해 이러한 정확한 단계를 수행합니다. 그 결과, 나는 TermVector에서 누가 복음에 나오는 나의 말을 지켜 본다. 하나의 단어에 대한 여러 줄기가 연속적으로 나타난다. 무엇이 잘못 되었나요?
입니까? – phani