【问题标题】:Could Not Chain Dataimporthandler and schemaless to add unknown fields无法链接 Dataimporthandler 和无模式以添加未知字段
【发布时间】:2016-10-23 02:29:33
【问题描述】:

我已经使用无模式模式链接了 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>

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

【问题讨论】:

    标签: solr dataimporthandler schemaless


    【解决方案1】:

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

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

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

    【讨论】:

    • DIH 还包括一些链处理器,如果它除了模式生成器之外,它应该使用它。我知道我可以选择将它导出到某个地方,但它不能满足我的需要。
    猜你喜欢
    • 1970-01-01
    • 2015-06-07
    • 1970-01-01
    • 1970-01-01
    • 2018-10-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多