solr8基于tika创建pdf索引
1.在solrconfig.xml添加如下
2.新建data-config.xml并添加如下内容
<?xml version="1.0" encoding="UTF-8" ?>
<dataConfig>
<dataSource type="BinFileDataSource"/>
<document>
<entity name="file" processor="FileListEntityProcessor" dataSource="null"
baseDir="/home/peiyajie/solr-8.5.2/example/exampledocs" fileName=".*pdf"
rootEntity="false" onError="skip" recursive="true">
<field column="fileAbsolutePath" name="id" />
<field column="fileSize" name="size" />
<field column="fileLastModified" name="lastModified" />
<entity name="tika-test" dataSource="bin" processor="TikaEntityProcessor"
url="${file.fileAbsolutePath}" format="text" onError="skip">
<field column="Author" name="author" meta="true"/>
<field column="title" name="title" meta="true"/>
<field column="dc:format" name="format" meta="true"/>
<field column="text" name="content"/>
</entity>
</entity>
</document>
</dataConfig>
说明:file名称的entity是轮询当前文件夹下面所有文件,如果你只导入一个直接用子entity指定绝对路径即可
3.managed-schema添加如下
<field name="content" type="text_ik" indexed="true" stored="true" omitNorms="true" multiValued="false"/>
<field name="author" type="text_ik" indexed="true" stored="true"/>
<field name="title" type="text_ik" indexed="true" stored="true"/>
<field name="fileName" type="string" indexed="true" stored="true"/>
<field name="filePath" type="string" indexed="true" stored="true" multiValued="false"/>
<field name="size" type="plong" indexed="true" stored="true"/>
<field name="lastModified" type="pdate" indexed="true" stored="true"/>
注意text_ik是上篇文章添加的中文分析器
4.很重要的一步需要将tiak的jar(contrib/extraction/lib)及相关依赖包传入WEB-INF/lib下面
cp /home/peiyajie/solr-8.5.2/contrib/extraction/lib/*.jar /home/peiyajie/solr-8.5.2/server/solr-webapp/webapp/WEB-INF/lib
如果没有传过,还需要再传
home/peiyajie/solr-8.5.2/dist/solr-dataimporthandler-.*\.jar
即可完成
要不然debug模式会报:
null:java.lang.RuntimeException: java.lang.NoClassDefFoundError: org/apache/tika/parser/Parser
注意:debug模式日志清晰,file就是刚才entity指定的名称