Lucene 最新版代码使用实例之【搜索index】

来源:互联网 发布:js event对象详解 编辑:程序博客网 时间:2024/06/11 03:21

根据之前创建的索引进行搜索。

/** * V Lucene 3.5 * 搜索索引 */public static void readIndex(){IndexSearcher indexSearch = null;try {//保存索引文件的地方   Directory dir = new SimpleFSDirectory(new File(LUCENEDATA));  /**  * indexSearch = new IndexSearcher(dir);<被弃用>  */ indexSearch = new IndexSearcher(IndexReader.open(dir));  //创建QueryParser对象,第一个参数表示Lucene的版本,第二个表示搜索Field的字段,第三个表示搜索使用分词器   QueryParser queryParser = new QueryParser(Version.LUCENE_35,           "name", new StandardAnalyzer(Version.LUCENE_35));  String key = "tESt.html"; //生成Query对象   Query query = queryParser.parse(key);  /**  * 搜索结果 TopDocs里面有scoreDocs[]数组,里面保存着索引值  * API: Finds the top n  hits for query  */ TopDocs hits = indexSearch.search(query, 10); //hits.totalHits表示一共搜到多少个 System.out.println("共搜索到"+hits.totalHits+"个 '"+key+"'");  //循环hits.scoreDocs数据,并使用indexSearch.doc方法把Document还原,再拿出对应的字段的值   for (ScoreDoc sdoc : hits.scoreDocs) {       Document doc = indexSearch.doc(sdoc.doc);       System.out.println(doc.get("path"));               } indexSearch.close();} catch (CorruptIndexException e) {e.printStackTrace();} catch (IOException e) {System.out.println("There is no index files...");} catch (ParseException e) {e.printStackTrace();}}
输出结果:

共搜索到4个 'tESt.html'
F:\特效\artDialog\basic\_doc\highlight\test.html
F:\特效\artDialog\_doc\highlight\test.html
F:\特效\basic\_doc\highlight\test.html
F:\特效\zu\highlight\test.html


原创粉丝点击