欢迎来到天天文库
浏览记录
ID:8909441
大小:46.17 KB
页数:7页
时间:2018-04-11
《一个经典lucene入门模块及例子解析》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、一个经典Lucene入门模块及例子解析Lucene是一个很强大的全文搜索工具,许多公司或软件实现都用到它,如一些公司用它来查子网信息,再如Eclipse等软件就是用它来实现索引的。这里给出Lucene的一个简单例子的代码来说明其大致使用流程模块,建立一个简单的Java搜索引擎。首先我们给出大概模块的代码,实际应用中会视情况而修改。Lucene实例代码:建立数据(data)的索引(Index)1.用IndexWriter建立一个Luceneindex2.创建一个LuceneDocument3.将Lucenedocument放进i
2、ndex中4.优化(optimize)和关闭(close)index用IndexWriter建立LuceneindexStringindexPath="/path/to/whereYou/wantThe/IndexStored";IndexWriterwriter=null;try{//MakealucenewriterandcreatenewLuceneindexwitharg3=truewriter=newIndexWriter(indexPath,newStandardAnalyzer(),true);}catch(IO
3、Exceptione){System.out.println("IOExceptionopeningLuceneIndexWriter:"+e.getMessage());}创建一个LucenedocumentStringcontent="ThisistheexampletextIwanttohaveLuceneindex";Documentdoc=newDocument();doc.add(Field.Text("content",content));将上述创建的document加进index中try{writer.addD
4、ocument(doc);}catch(IOExceptione){System.out.println("IOExceptionaddingLuceneDocument:"+e.getMessage());}优化(optimize)和关闭(close)IndexWritertry{writer.optimize();writer.close();}catch(IOExceptione){System.out.println("IOExceptionclosingLuceneIndexWriter:"+e.getMessage
5、());}Lucene实例代码:建立搜索(Search)步骤打开一个LuceneIndexSearcherIndexSearcherindexSearcher=newIndexSearcher(indexPath);假如你要将Lucene用到webpage上,最好是每次query都重用一下原来的。许多Lucene刚开始使用者都不注意从用IndexWriter的问题。重用LuceneIndexSearcher也可以更好地利用Java垃圾回收功能,使得到更快速的搜索和更省得利用存储。这里给出一些JSP代码,主要是存储applica
6、tion的IndexWriter并可能在以后网页中或许会用到的代码。indexSearcher=(IndexSearcher)application.getAttribute("searcher");if(indexSearcher==null){indexSearcher=newIndexSearcher(indexPath);application.setAttribute("searcher",indexSearcher);}构造一个Lucene搜索命令(Query)StringqueryString="example"
7、;try{Queryquery=QueryParser.parse(queryString,"content",newStandardAnalyzer());}catch(ParseExceptione){System.out.println("LuceneParseException:"+e.getMessage);e.printStackTrace();}用Lucene来搜索(Search)Hitshits=null;try{Hitshits=indexSearcher.search(query);catch(IOExce
8、ptione){System.out.println("LuceneSearchingException:"+e.getMessage());}Lucene的结果保存在Hits中。打印Lucene得到的结果HitsinthitCount=hits.length();for(i
此文档下载收益归作者所有