solr读取word,pdf


这两天一直纠结是用lucene来做搜索应用,还是用solr来做搜索应用。lucene只提供一个可查询的包,用它来实现搜索的好处是,应用需要什么,我就用它提供的相应功能即可。而solr本身就是基于lucene的应用,对lucene又做了封装,这就相当于是在第二层基础之上开发,所以要改它是需要花时间的。但solr提供了很多lucene没有的功能,不管了,老师说要用solr,那就用solr吧

lucene和solr的对比:

1.http://www.blogjava.net/luopeizhong/articles/321732.html

2.Apache Solr:基于Lucene的可扩展集群搜索服务器

 

lucene对索引的更新比solr麻烦,solr只需要调用一个函数UpdateRequest.setAction(AbstractUpdateRequest.ACTION.COMMIT, false, false)就完成了更新,而lucene需要先删除再更新,否则就变成增量索引了

lucene更新索引:http://langhua9527.iteye.com/blog/582347

 

前面已经简单介绍了solr的安装与使用,下面来看看如何用客户端solrj来建立索引及查询

solrj要成功运行,需要导入下列包才行

From /dist:

apache-solr-solrj-3.1.0.jar

From /dist/solrj-lib:
commons-codec-1.4.jar
commons-httpclient-3.1.jar
jcl-over-slf4j-1.5.5.jar
slf4j-api-1.5.5.jar

下面这个包需要去官方下载,因为本人在solr3.1中是没发现这个jar包的,估计是在低版本中有
slf4j-jdk14-1.5.5.jar

solr从1.4版本开始,将apache Tika合并进来,Tika是一个内容抽取的工具集合(a toolkit for text extracting)。它集成了POI, Pdfbox 并且为文本抽取工作提供了一个统一的界面。solr中利用这个工具可以很简单实现对pdf、word等富文本的提取

 

我的是3.1版,在实现过程中,走了很多弯路,终于还是自己解决了,下面分享一下

刚开始一直在solr.request(up)这一步报错,看tomcat报错是说没有ignored_meta类型,刚开始一直不理解,因为我的配置文件schema.xml中根本没有这种类型,刚开始还以为是版本原因导致,专门去下了solr1.4版,运行果然不报错,后来才想到是因为前面在入门例子中,我修改了配置文件schema.xml,而solrconfig.xml配置文件在/update/extract节点处,有ignored_类型引用,后来我在schema.xml加入ignored_类型后,运行正常

 

后面研究一下如何用solrj进行查询,并将查询结果展示在web页面上,因为查询结果返回的是xml形式

 

如果solr是1.3版本或以下,请参考:http://wiki.apache.org/solr/UpdateRichDocuments

参考资料:

1.http://wiki.apache.org/solr/ExtractingRequestHandler
2.http://www.lucidimagination.com/Community/Hear-from-the-Experts/Articles/Content-Extraction-Tika

评论 14
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值