2017-02-13 9 views
0

私はLuceneにはとても新しく、私はLucene 4.10.4を使用しています。いくつかの説明のために、検索時にluceneがインデックスから読み取ったすべての単語を表示しようとしています。私は、検索文字列に基づいて、Luceneとの比較からインデックス内のすべての単語がスキップされていることを理解しようとしています。私はいくつかのluceneクラスでprintステートメントを使って単語を印刷しようとしました。しかし、それは動作しませんでした。 printステートメントはどこで使用できますか?インデックスの単語を印刷する - Lucene

答えて

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(); 
      } 
     } 
関連する問題