有没有办法从solr中提取所有标记?

时间:2011-07-14 07:05:59

标签: lucene solr

如何从solr中提取所有令牌?不是来自一个文档,而是来自solr中索引的所有文档?

谢谢!

1 个答案:

答案 0 :(得分:1)

你可以这样做(这个样本被批准用于lucene 4.x索引):

IndexSearcher isearcher = new IndexSearcher(dir, true);
IndexReader reader = isearcher.getIndexReader();
Fields fields = MultiFields.getFields(reader);
Collection<String> cols = reader.getFieldNames(IndexReader.FieldOption.ALL);
for (String col : cols) {
Terms te = fields.terms(col);
if (te != null) {
    TermsEnum tex = te.getThreadTermsEnum();
    while (tex.next() != null)
        // do something 
        tex.getTerm().text();
    }
}

这会迭代所有列以及每个col的每个术语。您可以查找TermsEnum提供的方法,如getTerm()