0

我已经用无模式模式链接了 dataimporthandler。如下所示,将配置参数“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>

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

4

1 回答 1

2

DataImportHandler 优先于无模式模式。如果您尝试自动映射它(列名到字段名),则实现它以检查该字段是否存在于模式中以了解如何映射它。这样你就可以只定义你想要在模式中的字段,它会忽略其余的。它不知道无模式模式可以弥补这一点,也没有为字段排除提供任何替代机制(如果接受每个字段都是默认值,您将需要这种机制)。

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

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

于 2016-06-22T14:19:16.720 回答