打印索引中的单词 - Lucene

时间:2017-02-13 12:05:53

标签: java lucene

我对Lucene很新,我使用的是Lucene 4.10.4。对于一些澄清,我试图在搜索时间内打印lucene从索引中读取的所有单词。我试图理解,基于搜索字符串,Lucene比较了索引中所有单词的所有内容。我尝试在一些lucene类中使用print语句打印单词。但它没有用。我在哪里可以使用print语句?

1 个答案:

答案 0 :(得分:1)

这样的事情应该适合你。此代码打开 Lucene 索引并遍历所有字段并列出所有字词。你可以在这里轻松跳过不需要的字段

        IndexReader reader = DirectoryReader.open(dir);
        final Fields fields = MultiFields.getFields(reader);
        final Iterator<String> iterator = fields.iterator();

        while(iterator.hasNext()) {
            final String field = iterator.next();
            final Terms terms = MultiFields.getTerms(reader, field);
            final TermsEnum it = terms.iterator(null);
            BytesRef term = it.next();
            while (term != null) {
                System.out.println(term.utf8ToString());
                term = it.next();
            }
        }