问题描述
我们已经建立了一个带有 json 类型字段的 postgres 数据库,它应该同步到 elastic 以获得更好的搜索性能。 json 对于对象数组非常复杂,因此我们需要使用嵌套数据类型定义 elasticsearch 映射。我们还定义了一个elasticsearch json 处理器,它转换potgres json 字段中的json 字符串(数据库迁移服务将其作为字符串处理)。
{
"description" : "parses content as json","processors" : [
{
"json" : {
"field" : "content","add_to_root": true
}
}
]
}
当使用从邮递员到 es 的转义 json 运行示例发布请求时,它可以工作(此示例发布请求(尝试)模仿应该从 DMS 发送的请求。如果通过 DMS 运行,我们会得到
"error": {
"root_cause": [
{
"type": "illegal_argument_exception","reason": "cannot change object mapping from nested to non-nested"
}
],"type": "illegal_argument_exception","reason": "cannot change object mapping from nested to non-nested"
},"status": 400
是否有可能捕获从 DMS 发送到 ES 的实际请求
- 我们将 DMS 中的日志更改为 { "Id": "TARGET_APPLY","严重性": "LOGGER_SEVERITY_DETAILED_DEBUG" },
- 我们还在 Elasticserach 服务上设置了错误日志
但只记录错误 - 查看 DMS 实际组装的请求会很有帮助。
附注: 在索引上没有预定义映射时,它是通过 DMS 插入的(ES 猜测字段类型很好),但我们需要应用映射。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)