索引数据源并不会一定来自于数据库、XML、JSON、CSV这类结构化数据,很多时候也来自于PDF、word、html、word、MP3等这类非结构化数据,从这类非结构化数据创建索引,solr也给我们提供了很好的支持,利用的是apache tika。
下面我们来看看在solr4.7中如何从pdf文件创建索引。
一、配置文件索引库
1、 新建core
我们新建一个solr的core,用于存储文件型索引,新建core的步骤请参考:
http://blog.csdn.net/clj198606061111/article/details/21288499
2、 准备jar
我们在$solr_home下面新建一个extract文件夹,用于存放solr扩展jar包。
从colr4.7发布包中solr-4.7.0\dist拷贝solr-cell-4.7.0.jar到新建的extract文件夹下。拷贝 solr4.7发布包solr-4.7.0\contrib\extraction\lib下所有jar包到extract文件夹下。
3、 配置solrconfig.xml
添加请求解析配置:
[html] view plain copy
- <requestHandler name="/update/extract" class="solr.extraction.ExtractingRequestHandler" >
- <lst name="defaults">
- <str name="fmap.content">text</str>
- <str name="lowernames">true</str>
- <str name="uprefix">attr_</str>
- <str name="captureAttr">true</str>
- </lst>
- </requestHandler>
指定依赖包位置:
注意,这个相对位置不是相对于配置文件所在文件夹位置,而是相对core主目录的。比如我的配置文件在solr_home\core1\conf, 但是我的jar包在solr_home\ extract那么我的相对路径就是../extract而不是../../extract。
[html] view plain copy
- <lib dir="../extract" regex=".*\.jar" />
4、配置schema.xml
4.1配置索引字段的类型,也就是field类型。
其中text_general类型我们用到2个txt文件(stopwords.txt、synonyms.txt),这2个txt文件在发布包示 例core里面有位置在:solr-4.7.0\example\solr\collection1\conf,复制这2个txt文件到新建 的$solr_home的那个新建的core下面的conf目录下,和schema.xml一个位置。
[html] view plain