DataImportHandler:提取但未导入的文档

时间:2017-02-09 11:53:33

标签: solr dataimporthandler

我需要通过文件系统抓取递归来查找任何xml文件,以便对这些文件进行索引,运行Solr 6.4

在第一次运行中,我使用了带有2个节点的Solr云示例,并使用以下配置添加了数据导入处理程序:

<dataConfig>
  <dataSource type="FileDataSource"
              encoding="ISO-8859-1" />
  <document>
    <entity
      name="document"
      processor="FileListEntityProcessor"
      baseDir="/path/to/xmldata"
      fileName=".*\.xml$"
      recursive="true"
      rootEntity="false"
      dataSource="null">
      <entity
    name="xpathE"
        processor="XPathEntityProcessor"
        url="${document.fileAbsolutePath}"
        useSolrAddSchema="true"
        stream="true"
    onError="continue">
      </entity>
    </entity>
  </document>
</dataConfig>

在我启动dataimport进程后,Solr接入访问文件系统并以Message结束,获取了148个文档。 但是,索引中没有添加任何文档。

以下是importHandler的反馈:

{

  "responseHeader": {
    "status": 0,
    "QTime": 0
  },
  "initArgs": [
    "defaults",
    [
      "config",
      "DIHconfigfile.xml"
    ]
  ],
  "command": "status",
  "status": "idle",
  "importResponse": "",
  "statusMessages": {
    "Total Requests made to DataSource": "0",
    "Total Rows Fetched": "148",
    "Total Documents Processed": "0",
    "Total Documents Skipped": "0",
    "Full Dump Started": "2017-02-09 10:53:03",
    "": "Indexing completed. Added/Updated: 0 documents. Deleted 0 documents.",
    "Committed": "2017-02-09 10:53:03",
    "Time taken": "0:0:0.140"
  }
}

为什么Solr没有向索引添加单个文档?

1 个答案:

答案 0 :(得分:1)

要回答我自己的问题,以防万一有人遇到相同的问题:

如果DIH在获取的文件中找不到任何匹配的字段,则会发生上述问题。 在我的情况下,没有有效的动态模式,也没有与XML标记匹配的Solr字段的Xpath定义,例如:<field column="name" xpath="/document/head/Person"/>

只要schema.xml中没有必需的solr归档,Solr都不会记录任何错误。如果没有单个Solr字段设置了required=true属性,那么对于Solr来说,一切都是可选的。