Lucene を使用して文書内の単語の位置を取得する方法を知りたい 既にインデックス ファイルを生成しており、索引付けされた単語、文書内の単語の位置などの情報をインデックスから抽出したい
私はこのようなリーダーを作成しました:
public void readIndex(Directory indexDir) throws IOException {
IndexReader ir = IndexReader.open(indexDir);
Fields fields = MultiFields.getFields(ir);
System.out.println("TOTAL DOCUMENTS : " + ir.numDocs());
for(String field : fields) {
Terms terms = fields.terms(field);
TermsEnum termsEnum = terms.iterator(null);
BytesRef text;
while((text = termsEnum.next()) != null) {
System.out.println("text = " + text.utf8ToString() + "\nfrequency = " + termsEnum.totalTermFreq());
}
}
}
ライターを次のように変更しました。
org.apache.lucene.document.Document doc = new org.apache.lucene.document.Document();
FieldType fieldType = new FieldType();
fieldType.setStoreTermVectors(true);
fieldType.setStoreTermVectorPositions(true);
fieldType.setIndexed(true);
doc.add(new Field("word", new BufferedReader(new InputStreamReader(fis, "UTF-8")), fieldType));
そして、 trueを返すterms.hasPositions()を呼び出して、用語に位置があるかどうかを読み取ろうとしましたが、 どの関数が位置を与えることができるかわかりませんか??