我被链接到无模式模式下的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>
我希望能够添加来自数据库的未知字段。
发布于 2016-06-22 22:19:17
DataImportHandler优先于无模式模式。如果您正在尝试自动映射它(列名到字段名),则实现它是为了检查该字段是否存在于模式中,以了解如何映射它。这样,您就能够在模式中只定义您想要的字段,而忽略其余字段。它不知道无模式模式可以弥补这一点,也不提供任何字段排除的替代机制(如果默认接受每个字段,则需要这种机制)。
如果您在DIH中显式地定义了字段映射,那么它应该可以工作。
如果您确实不知道将拥有什么字段,最好从数据库内容生成CSV、XML或JSON文件并将其推送到Solr,而不是使用DIH拉取它。
https://stackoverflow.com/questions/37946150
复制相似问题