</pre><pre name="code" class="cpp">package com.lin.lucene;
import java.io.File;
import java.io.IOException;
import org.apache.lucene.document.Document;
import org.apache.lucene.index.IndexReader;
import org.apache.lucene.queryparser.classic.ParseException;
import org.apache.lucene.queryparser.classic.QueryParser;
import org.apache.lucene.search.IndexSearcher;
import org.apache.lucene.search.Query;
import org.apache.lucene.search.ScoreDoc;
import org.apache.lucene.search.TopDocs;
import org.apache.lucene.store.Directory;
import org.apache.lucene.store.FSDirectory;
import org.apache.lucene.util.Version;
import org.wltea.analyzer.lucene.IKAnalyzer;
public class Searcher {
private IndexReader reader;
public void search(String indexDir, String q) throws IOException,
ParseException {
Directory dir = FSDirectory.open(new File(indexDir));
IndexSearcher is = new IndexSearcher(reader.open(dir));
QueryParser parser = new QueryParser(Version.LUCENE_4_10_2, "contents",
new IKAnalyzer());
Query query = parser.parse(q);
long start = System.currentTimeMillis();
TopDocs hits = is.search(query, 10);
long end = System.currentTimeMillis();
System.out.println("Found " + hits.totalHits + " document(s) (in "
+ (end - start) + "milliseconds ) that matched query :'" + q
+ "':");
for (ScoreDoc scoreDoc : hits.scoreDocs) {
Document doc = is.doc(scoreDoc.doc);
System.out.println(doc.get("fullpath"));
}
}
public static void main(String[] args) throws IOException, ParseException {
new Searcher().search("d:\\index", "hackcoder");
}
}
Lucene实战-Searcher使用
最新推荐文章于 2020-07-22 14:19:02 发布