如何在Solr DataImport中为导入文档设置固定值字段origin
当然可行!
你的需求完全可以通过Solr DataImportHandler(DIH)实现,不需要依赖源collection中的字段,直接在配置里添加固定值字段即可。
你给出的配置思路是对的,只需要调整一下<field>标签的写法:当你要添加固定值字段时,不需要指定column属性(因为这个字段不存在于源数据中),只需要用name指定目标collection中的字段名,value设置固定值就可以了。
下面是修正后的完整配置示例:
<dataConfig> <document> <entity name="Master" processor="SolrEntityProcessor" query="*:*" url="https://<solr site>/solr/Master" qt="/select" rows="10" cursorMark="true"> <!-- 映射源collection中的字段 --> <field column="content" name="content_txt"/> <!-- 其他字段映射... --> <!-- 添加固定值的origin字段 --> <field name="origin" value="collection2" /> </entity> </document> </dataConfig>
几个关键说明:
- 这个固定值字段会被添加到每一条从源collection导入的文档中,值始终为
collection2。 - 确保你的目标collection的schema(或managed-schema)中已经定义了
origin字段(比如类型设为string即可),否则导入时可能会忽略这个字段或者报错。 cursorMark="true"的设置很合理,它能帮助你高效地分页导入大量数据,避免普通分页的性能问题。
如果在导入过程中遇到字段不生效的情况,可以检查:
- 目标collection的schema是否包含
origin字段,且没有设置indexed="false"或stored="false"(如果需要后续查询或展示的话)。 - DIH的配置是否正确加载,可通过Solr Admin的Dataimport页面查看配置详情。
内容的提问来源于stack exchange,提问作者Mark Sholund
相关产品推荐
相关产品推荐

