【发布时间】:2015-10-06 05:00:19
【问题描述】:
此代码将字符串数组索引到字段中
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();
}
【问题讨论】: