/**
*
* 查询
*
* @throws IOException
* @throws ParseException
*/
@Test
public void search() throws IOException, ParseException{
//创建分词器
Analyzer analyzer = new StandardAnalyzer(Version.LUCENE_34);
//索引库
Directory dir = FSDirectory.open(new File(indexPath));
//IndexSearcher
IndexSearcher searcher = new IndexSearcher(dir);
//查询解析
QueryParser parser = new QueryParser(Version.LUCENE_34, "content", analyzer);
Query query = parser.parse("WYSIWYG");
//查询
TopDocs topDocs = searcher.search(query, 100);
System.out.println("查询结果:"+topDocs.totalHits+"条记录");
//打印结果
for(ScoreDoc doc : topDocs.scoreDocs){
Document document = searcher.doc(doc.doc);
System.out.println(document.get("filepath"));
}
searcher.close();
}
需要注意的是:建立索引的分词器要和查询的分词器是同一个,这个才能保证分词一致。

本文详细介绍了如何利用Lucene实现全文搜索功能,包括创建分词器、索引库、查询解析及结果打印等关键步骤。确保了建立索引与查询时分词的一致性,从而提高搜索效率。
784

被折叠的 条评论
为什么被折叠?



