lucene创建索引
生活随笔
收集整理的這篇文章主要介紹了
lucene创建索引
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1.導入jar包
2.創建實體Bean
package?com.zhishang.lucene;/***?Created?by?Administrator?on?2017/7/8.*/ public?class?HtmlBean?{private?String?title;private?String?content;private?String?url;public?void?setTitle(String?title)?{this.title?=?title;}public?void?setContent(String?content)?{this.content?=?content;}public?void?setUrl(String?url)?{this.url?=?url;}public?String?getTitle()?{return?title;}public?String?getContent()?{return?content;}public?String?getUrl()?{return?url;} }3.創建工具Bean
package?com.zhishang.lucene;import?net.htmlparser.jericho.Element; import?net.htmlparser.jericho.HTMLElementName; import?net.htmlparser.jericho.Source; import?org.junit.Test;import?java.io.File; import?java.io.IOException;/***?Created?by?Administrator?on?2017/7/8.*/ public?class?HtmlBeanUtil?{public?static?HtmlBean?parseHtml(File?file){try?{Source?sc?=?new?Source(file);Element?element?=?sc.getFirstElement(HTMLElementName.TITLE);if?(element?==?null?||?element.getTextExtractor()?==?null){return?null;}HtmlBean?htmlBean?=?new?HtmlBean();htmlBean.setTitle(element.getTextExtractor().toString());htmlBean.setContent(sc.getTextExtractor().toString());htmlBean.setUrl(file.getAbsolutePath());return?htmlBean;}?catch?(IOException?e)?{e.printStackTrace();}return?null;} }4.創建操作Bean
package?com.zhishang.lucene;import?org.apache.commons.io.FileUtils; import?org.apache.commons.io.filefilter.TrueFileFilter; import?org.apache.lucene.analysis.Analyzer; import?org.apache.lucene.analysis.standard.StandardAnalyzer; import?org.apache.lucene.document.*; import?org.apache.lucene.index.IndexWriter; import?org.apache.lucene.index.IndexWriterConfig; import?org.apache.lucene.store.Directory; import?org.apache.lucene.store.FSDirectory; import?org.apache.lucene.store.RAMDirectory; import?org.apache.lucene.util.Version; import?org.junit.Test; import?org.wltea.analyzer.lucene.IKAnalyzer;import?java.io.File; import?java.io.IOException; import?java.util.Collection;/***?Created?by?Administrator?on?2017/7/7.*/ public?class?CreateIndex?{public?static?final?String?indexDir?=?"G:/index";public?static?final?String?dataDir?=?"G:/data";public?void?createIndex(){try?{Directory?dir?=?FSDirectory.open(new?File(indexDir));//分詞器Analyzer?analyzer?=?new?StandardAnalyzer(Version.LUCENE_4_9);IndexWriterConfig?config?=?new?IndexWriterConfig(Version.LUCENE_4_9,analyzer);config.setOpenMode(IndexWriterConfig.OpenMode.CREATE_OR_APPEND);IndexWriter?writer?=?new?IndexWriter(dir,config);File?file?=?new?File(dataDir);RAMDirectory?ramdir?=?new?RAMDirectory();Analyzer?analyzer1?=?new?IKAnalyzer();IndexWriterConfig?config1?=?new?IndexWriterConfig(Version.LUCENE_4_9,analyzer1);IndexWriter?ramWriter?=?new?IndexWriter(ramdir,config1);Collection<File>?files?=?FileUtils.listFiles(file,?TrueFileFilter.INSTANCE,TrueFileFilter.INSTANCE);int?count?=?0;for(File?f:files){HtmlBean?bean?=??HtmlBeanUtil.parseHtml(f);if(bean?!=?null){Document?document?=?new?Document();document.add(new?StringField("title",bean.getTitle(),?Field.Store.YES));document.add(new?TextField("content",bean.getContent(),?Field.Store.YES));document.add(new?StringField("url",bean.getUrl(),?Field.Store.YES));ramWriter.addDocument(document);count++;if?(count?==?50){ramWriter.close();writer.addIndexes(ramdir);ramdir?=?new?RAMDirectory();Analyzer?analyzer2?=?new?IKAnalyzer();IndexWriterConfig?config2?=?new?IndexWriterConfig(Version.LUCENE_4_9,analyzer2);ramWriter?=?new?IndexWriter(ramdir,config2);count?=?0;}}}writer.close();}?catch?(IOException?e)?{e.printStackTrace();}} }5.創建測試Bean
package?com.zhishang.lucene;import?org.apache.lucene.analysis.Analyzer; import?org.apache.lucene.analysis.standard.StandardAnalyzer; import?org.apache.lucene.index.IndexWriter; import?org.apache.lucene.index.IndexWriterConfig; import?org.apache.lucene.store.Directory; import?org.apache.lucene.store.FSDirectory; import?org.apache.lucene.util.Version; import?org.junit.Test;import?java.io.File;/***?Created?by?Administrator?on?2017/7/8.*/ public?class?LuceneBean?{/*創建索引*/@Testpublic?void?createIndex(){File?file?=?new?File(CreateIndex.indexDir);if?(file.exists()){file.delete();file.mkdirs();}CreateIndex?createIndex?=?new?CreateIndex();createIndex.createIndex();} }6.查看生成的索引文件
轉載于:https://blog.51cto.com/suyanzhu/1945466
總結
以上是生活随笔為你收集整理的lucene创建索引的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: JSONUtils.toJSONStri
- 下一篇: Silverlight+WCF 新手实例