索引数据源并不会一定来自于数据库、XML、JSON、CSV这类结构化数据,很多时候也来自于PDF、word、html、word、MP3等这类非结构化数据,从这类非结构化数据创建索引,solr也给我们提供了很好的支持,利用的是apache tika。
下面我们来看看在solr4.10中如何从pdf文件创建索引。
先配置文件索引
新建core,存储文件型索引,具体步骤参考:
http://blog.csdn.net/u011439289/article/details/41699009
导入jar包
在工作目录下新建一个extract文件夹,用来存放solr扩展的jar包。
\solr_tomcat\solr\pdf_core\extract
拷贝\solr-4.10.2\dist下的solr-cell-4.10.2.jar到extract文件夹中,接着把
\solr-4.10.2\contrib\extraction\lib下的索引jar包拷贝到extract文件夹中。
配置solrconfig.xml
添加请求解析配置:
<requestHandler name="/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>
指定依赖包位置:
<span style="font-size:18px;"><lib dir="extract" regex=".*\.jar" /></span>
注意,这个相对位置不是相对于配置文件所在文件夹位置,而是相对core主目录的。比如我的配置文件在\solr_tomcat\solr\pdf_core\conf, 但是我的jar包在\solr_tomcat\solr\pdf_core\extract那么我的相对路径就是extract而不是../extract。
配置schema.xml,配置索引字段的类型,也就是field类型。
其中text_general类型我们用到2个txt文件(stopwords.txt、synonyms.txt),这2个txt文件在发布包示例core