Solr 5.1.0 - Apache TikaEntityProcessor无法找到我的文件

时间:2015-06-16 17:41:16

标签: mysql solr apache-tika

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/。

1 个答案:

答案 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>