Lucene对本地文件多目录创建索引.docx
文本预览下载声明
http://blog/849554Lucene对本地文件多目录创建索引 http://blog/849554jar包版本说明: lucene 版本2.9(当时是为了和solr1.4一起用,不过换成Lucene3.0的jar包代码是不用修改的) ik分词器 版本3.1.6(说起来还是solr,高版本的死活配不上去,汗···) jsoup 1.4.1用来解析HTML的工具包很好用。(比htmlparser好用多了 呵呵个人意见) 参考范围,本文仅限对TXT,HTML,HTM文件的内容创建索引。 创建索引的代码如下: Java代码 ?javascript:void()public?class?IndexJob?{?public?static?Date?beginTime;??//读取TXT文件内容?private?static?String?loadFileToString(File?file)?{?try?{?InputStreamReader?isr?=?new?InputStreamReader(new?FileInputStream(?file),?UTF-8);?BufferedReader?br?=?new?BufferedReader(isr);?StringBuffer?sb?=?new?StringBuffer();?String?line?=?br.readLine();?while?(line?!=?null)?{?sb.append(line);?line?=?br.readLine();?}?br.close();?return?sb.toString();?}?catch?(IOException?e)?{?e.printStackTrace();?return?null;?}?}??//提取HTML文件的文本内容?private?static?String?getDocument(File?html)?{?String?text?=?;?try?{?//设置编码集//??????????org.jsoup.nodes.Document?doc?=?Jsoup.parse(html,?UTF-8);?org.jsoup.nodes.Document?doc?=?Jsoup.parse(html,GBK);??//提取标题信息?Elements?title?=?doc.select(title);?for?(org.jsoup.nodes.Element?link?:?title)?{?text?+=?link.text()?+??;?}??//提取table中的文本信息?Elements?links?=?doc.select(table);?for?(org.jsoup.nodes.Element?link?:?links)?{?text?+=?link.text()?+??;?}??//提取div中的文本信息?Elements?divs?=?doc.select(div[class=post]);?for?(org.jsoup.nodes.Element?link?:?divs)?{?text?+=?link.text()?+??;?}?}?catch?(IOException?e)?{?e.printStackTrace();?}??return?text;?}??public?static?void?createIndex(String?inputDir)?{?Directory?directory?=?null;?IndexWriter?writer?=?null;?IndexSearcher?searcher?=?null;?//?索引创建开始时间?Date?beginTime?=?new?Date();?try?{??//从配置文件中读取索引存放路径?String?indexPath?=?IndexUtil.getValue(IndexUtil.INDEX_ROOT);?directory?=?FSDirectory.open(new?File(indexPath));?File?indexFile?=?new?File(indexPath?+?\\segments.gen);??//根据索引文件segments.gen是否存在判断是否是第一次创建索引?if?(indexFile.exists())?{??//增量添加索引信息?writer?=?new?IndexWriter(directory,?new?IKAnalyzer(),?false,?IndexWriter.MaxFieldLength.LIMITED);?writer.setMergeF
显示全部