欢迎来到天天文库
浏览记录
ID:62168623
大小:505.09 KB
页数:11页
时间:2021-04-20
《经典的lucene实例代码及详细解析以及lucene结构流程介绍.docx》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、本文摘要:本文并给出一个经典的lucene全文收索例子代码。该例子功能是从磁盘文档建立索引,搜索该文档中的哪个TXT文件包含所搜索内容。最后再大致介绍Lucene的结构模块,应用流程希望对网友能有帮助。创建索引代码:packageluceneL;importjava.io.File;importjava.io.FileReader;importjava.io.IOException;importjava.io.Reader;importjava.util.Date;importorg.apache.lucene.anal
2、ysis.Analyzer;importorg.apache.lucene.analysis.standard.StandardAnalyzer;importorg.apache.lucene.document.Document;importorg.apache.lucene.document.Field;importorg.apache.lucene.index.CorruptIndexException;importorg.apache.lucene.index.IndexWriter;importorg.apach
3、e.lucene.store.LockObtainFailedException;publicclasscreateIndex{publicstaticbooleancreateDocumentIndex(){booleanbool=false;//被索引的目录文件夹Filedirpath=newFile("E:\documentTest");//索引文件存放的目录文件夹Fileindexpath=newFile("E:\Index");//分词,分词有StandardAnalyzer和SimpleAnalyzer两
4、种//lucene是将一句句话,一段话Field,分成一个个词Term进行索引搜索的。Analyzeranalyzer=newStandardAnalyzer();try{//向E:\Index保存建立的索引Index内容//用到IndexWriter类,这里需要传入的三个参数为://(索引目录文件夹,分词)IndexWriterindex=newIndexWriter(indexpath,analyzer,true);File[]txtfiles=dirpath.listFiles();longstartTime=n
5、ewDate().getTime();for(inti=0;i6、oc=newDocument();//将field存进索引的Document//Document添加读取的文章内容(缓存在内存中的文章内容read)doc.add(newField("content",read));//Document添加文章对应路径信息等//doc.add(newField("path",txtfiles[i].getAbsolutePath(),Field.Store.YES,Field.Index.NO));//index加Document,索引创建成功index.addDocument(doc)7、;}}//索引优化optimize(),合并磁盘上的索引文件,以便减少文件的数量,从而也减少搜索索引的时间index.optimize();//注意关闭IndexWriter,立即将索引文件写入到目录磁盘中,生成索引文件index.close();longendTime=newDate().getTime();System.out.println("共花了"+(endTime-startTime)+"毫秒将文档增加到索引中"+indexpath.getPath());bool=true;}catch(CorruptInd8、exExceptione){//TODOAuto-generatedcatchblocke.printStackTrace();}catch(LockObtainFailedExceptione){//TODOAuto-generatedcatchblocke.printStackTrace();}catch(IOE
6、oc=newDocument();//将field存进索引的Document//Document添加读取的文章内容(缓存在内存中的文章内容read)doc.add(newField("content",read));//Document添加文章对应路径信息等//doc.add(newField("path",txtfiles[i].getAbsolutePath(),Field.Store.YES,Field.Index.NO));//index加Document,索引创建成功index.addDocument(doc)
7、;}}//索引优化optimize(),合并磁盘上的索引文件,以便减少文件的数量,从而也减少搜索索引的时间index.optimize();//注意关闭IndexWriter,立即将索引文件写入到目录磁盘中,生成索引文件index.close();longendTime=newDate().getTime();System.out.println("共花了"+(endTime-startTime)+"毫秒将文档增加到索引中"+indexpath.getPath());bool=true;}catch(CorruptInd
8、exExceptione){//TODOAuto-generatedcatchblocke.printStackTrace();}catch(LockObtainFailedExceptione){//TODOAuto-generatedcatchblocke.printStackTrace();}catch(IOE
此文档下载收益归作者所有