2017-02-13 3 views
0

Я очень новичок в Lucene, и я использую Lucene 4.10.4. Для некоторых пояснений я пытаюсь напечатать все слова, которые lucene читает из индекса во время поиска. Я пытаюсь понять, основываясь на строке поиска, что все слова в индексе пропускаются от сравнения Lucene. Я попытался напечатать слова, используя инструкции печати в каком-то классе lucene. Но это не сработало. Где я могу использовать оператор печати?Распечатать слова в индексе - 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(); 
      } 
     } 
Смежные вопросы