您正在寻找术语向量(字段中所有单词的集合以及每个单词的使用次数,不包括停用词)。您将对索引中的每个文档使用IndexReader的getTermFreqVector(docid,field),并在其中填充
HashSet。
替代方法是使用term()并仅选择您感兴趣的字段的术语:
IndexReader reader = IndexReader.open(index);TermEnum terms = reader.terms();Set<String> uniqueTerms = new HashSet<String>();while (terms.next()) { final Term term = terms.term(); if (term.field().equals("field_name")) { uniqueTerms.add(term.text()); }}
这不是最佳解决方案,您正在阅读然后丢弃所有其他字段。
FieldsLucene
4中有一个类,仅返回单个字段的term(field)。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)