Solr,更具体地说是Tika,在查找从文件夹中检索文件路径的文件时遇到了一些问题。每当我去索引时,它会记录错误,说明找不到该文件。
我基本上正在做这个forum question中显示的内容,它从数据库获取文件路径并使用TikaEntityProcessor来分析文档。
他的问题是Tika的版本问题,但是我使用的是一个大约五年的版本,所以我不确定它是否仍然存在当前版本的Tika问题,或者我是否遗漏了一些非常明显的问题(其中有可能我是Solr的新手)这是我的数据配置。 TextContentURL是文件路径!
<dataConfig>
<dataSource name="ds-db" type="JdbcDataSource" driver="com.mysql.jdbc.Driver" url="jdbc:mysql://localhost:3306/EDMS_Metadata" user="root" password="**************" />
<dataSource name="ds-file" type="BinFileDataSource"/>
<document name="doc1">
<entity name="db-data" dataSource="ds-db" query="select TextContentURL as 'id',ID,Title,AuthorCreator from MasterIndex" >
<field column="TextContentURL" name="id" />
<field column="Title" name="title" />
</entity>
<entity name="file" dataSource="ds-file" processor="TikaEntityProcessor" url="${db-data.TextContentURL}" format="text">
<field column="text" name="text" />
</entity>
</document>
</dataConfig>
我想要注意的是,当我删除第二个实体并只运行数据库时,它可以正常工作。我可以运行和查询,并在运行分面搜索时获得此输出
"response": {
"numFound": 283,
"start": 0,
"docs": [
{
"id": "/home/paden/Documents/LWP_Files/BIGDATA/6220106.pdf",
"title": "ENGINEERING INITIATION",
},
这意味着它正在拉动文档文件路径JUST FINE。 id是正确的文件路径。但是当我重新添加第二个实体时,它会记录错误,说它无法找到该文件?我错过了一些明显的东西吗
Solr正在记录这些错误:
WARN FileDataSource FileDataSource.basePath为空。解析为:/home/paden/Downloads/solr-5.1.0/server /.
错误的DocBuilder
处理时出现异常:文件文件:SolrInputDocument(fields:[]):org.apache.solr.handler.dataimport.DataImportHandlerException:java.lang.RuntimeException:java.io.FileNotFoundException:找不到文件:(解析为:/home/paden/Downloads/solr-5.1.0/server /.
ERROR DataImporter
完全导入失败:java.lang.RuntimeException:java.lang.RuntimeException:org.apache.solr.handler.dataimport.DataImportHandlerException:java.lang.RuntimeException:java.io.FileNotFoundException:找不到文件:(已解决致:/home/paden/Downloads/solr-5.1.0/server/。
答案 0 :(得分:0)
尝试使用以下data-config。
<dataConfig>
<dataSource name="ds-db" type="JdbcDataSource" driver="com.mysql.jdbc.Driver" url="jdbc:mysql://localhost:3306/EDMS_Metadata" user="root" password="**************" />
<dataSource name="ds-file" type="BinFileDataSource"/>
<document name="doc1">
<entity name="db-data" dataSource="ds-db" query="select TextContentURL,ID,Title,AuthorCreator from MasterIndex" >
<field column="TextContentURL" name="TextContentURL" />
<field column="Title" name="title" />
<entity name="file" dataSource="ds-file" processor="TikaEntityProcessor" url="${db-data.TextContentURL}" format="text" onError="continue">
<field column="text" name="text" />
</entity>
</entity>
</document>
</dataConfig>