无法链接Dataimporthandler和无架构以添加未知字段

时间:2016-06-21 13:42:32

标签: solr dataimporthandler schemaless

我已经使用无模式模式链接了dataimporthandler。将config-param“add-unknown-fields-to-the-schema”添加到dataimporthandler,如下所示,并配置所有内容。 Dataimporthandler导入数据并且运行良好,但solr无法将未知字段添加到模式。它仅适用于现有字段。这是dataimporthandler对请求的回答。

{ "responseHeader": { "status": 0, "QTime": 0 }, "initArgs": [ "defaults", [ "update.chain", "add-unknown-fields-to-the-schema", "config", "db-data-config.xml" ] ], "command": "status", "status": "idle", "importResponse": "", "statusMessages": { "Total Requests made to DataSource": "1", "Total Rows Fetched": "273", "Total Documents Processed": "273", "Total Documents Skipped": "0", "Full Dump Started": "2016-06-21 13:29:48", "": "Indexing completed. Added/Updated: 273 documents. Deleted 0 documents.", "Committed": "2016-06-21 13:29:49", "Time taken": "0:0:0.543" } }

你可以看到我的配置没问题。下面是solrconfig文件。

<requestHandler name="/dataimport"   class="solr.DataImportHandler">
    <lst name="defaults">
         <str name="update.chain">add-unknown-fields-to-the-schema</str>
         <str name="config">db-data-config.xml</str>
   </lst>

我希望能够从数据库中添加未知字段。

1 个答案:

答案 0 :(得分:2)

DataImportHandler在无模式模式之前。如果您尝试将其自动映射(列名称为字段名称),则会实现它以检查模式中是否存在该字段以了解如何映射它。通过这种方式,您只能在架构中定义所需的字段,而忽略其余的字段。它不知道无模式模式可以弥补这一点,也不提供任何替代的字段排除机制(如果接受每个字段是默认值,则需要这种机制。)

如果在DIH中明确定义了字段映射,它应该可以工作。

如果您真的不知道自己将拥有哪个字段,那么最好从数据库内容生成CSV,XML或JSON文件并将其推送到Solr,而不是使用DIH将其拉出来。

相关问题