0
Этот код индексы массива строк в поляхLucene поиск все поля
for (int i =0; i < fileFields.length; i++)
{
Field field = new Field("field" + String.valueOf(i + 1),
fileFields[i],
Field.Store.YES,Field.Index.NOT_ANALYZED);
document.add(field);
}
я хочу искать по всем полям и печатать поля, которые соответствуют я попробовал этот код, но он не работает, как нужно
private void searchUsingPhraseQuery(String[] phrases)
throws IOException, ParseException{
searcher = new Searcher(indexDir);
long startTime = System.currentTimeMillis();
PhraseQuery query = new PhraseQuery();
query.setSlop(0);
for(String word:phrases){
query.add(new Term(LuceneConstants.CONTENTS,word));
}
//do the search
TopDocs hits = searcher.search(query);
long endTime = System.currentTimeMillis();
System.out.println(hits.totalHits +
" Phrases found. Time :" + (endTime - startTime) + "ms");
int i = 1;
for(ScoreDoc scoreDoc : hits.scoreDocs) {
Document doc = searcher.getDocument(scoreDoc);
System.out.println("Phrase: "+ doc.get("field" + String.valueOf(i)));
i++;
}
searcher.close();
}
Возможный дубликат [Multiple поля запроса обработки в Lucene] (http://stackoverflow.com/questions/15728569/multiple -field-запрос-обращение-в-Lucene) – user1071777