2
를 던졌습니다 :루씬 하이 라이터는 예외 내가 얻을 IllegalArgumentException가
java.lang.IllegalArgumentException: Cannot create Token Stream from Terms without offsets
내 코드 : 여기
Highlighter hl = new Highlighter(new SimpleHTMLFormatter(), new QueryScorer(titleQuery));
hl.setTextFragmenter(new NullFragmenter());
String text = searcher.doc(scoreDocs[i].doc).get("title");
TokenStream ts = TokenSources.getAnyTokenStream(searcher.getIndexReader(), scoreDocs[i].doc, "title", analyzer);
String frag = hl.getBestFragment(ts, text);
(생성 TokenStream 예외가 발생합니다)를 제목 필드가 인덱싱 방법은 다음과 같습니다
FieldType ft = new FieldType();
ft.setIndexed(true);
ft.setStored(true);
ft.setStoreTermVectors(true);
ft.setStoreTermVectorOffsets(true);
ft.setStoreTermVectorPositions(true);
doc.add(new Field("title", title, ft));
본인이 명확하게 약관을 저장하고 있기 때문에 당황 스럽습니다. ffsets 및 위치
나는 ft.setIndexOptions(FieldInfo.IndexOptions.DOCS_AND_FREQS_AND_POSITIONS_AND_OFFSETS)
을 시도했지만 차이를 보이지 않았습니다.