IndexReader reader = DirectoryReader.open(FSDirectory.open(new File("F:\\temp")));// 打開索引
IndexSearcher searcher = new IndexSearcher(reader);
Analyzer analyzer = new SmartChineseAnalyzer(Version.LUCENE_40);
String[] fields = { "questionname","id" };
Occur[] occurs = new Occur[] { Occur.SHOULD,Occur.SHOULD };
Query query = MultiFieldQueryParser.parse(Version.LUCENE_40, "測試 的", fields,
occurs, analyzer);
TopDocs result = searcher.search(query, searcher.getIndexReader()
.maxDoc());
ScoreDoc[] hits = result.scoreDocs;
List<Document> list = new ArrayList<Document>();
for (int i = 0; i <hits.length; i++) {
Document doc = searcher.doc(hits[i].doc);
list.add(doc);
}
System.out.println("搜索list的長度\t→→→→\t"+list.size());
for (Document document : list) {
System.out.println(document.getField("questionname"));
}
analyzer.close();
注:紅色字體是輸入的檢索條件,多個(gè)用空格隔開,找到的結(jié)果先匹配同時(shí)符合多個(gè)的結(jié)果,結(jié)果只是拿過來的document一個(gè)list集合,具體結(jié)果再解析就行了。
結(jié)果如圖:

注:紅色字體是輸入的檢索條件,多個(gè)用空格隔開,找到的結(jié)果先匹配同時(shí)符合多個(gè)的結(jié)果,結(jié)果只是拿過來的document一個(gè)list集合,具體結(jié)果再解析就行了。
結(jié)果如圖: