我尝试在将数据从couchbase服务器复制到elasticsearch时解决问题。
复制时出错:对象映射[place]尝试序列化没有与之关联的字段的值,当前值[placeName]
我的文件是
{
"Name":"personname",
"address":[],
place:["placeName"],
"zipCode" :"zipcode"
}
如果此文档更改为这样,它将起作用:
{
"Name":"personname",
"address":[],
place:[],
"zipCode" :"zipcode"
}
我在另一个文档中使用了与对象类型相同的名称。
{
"place":{
"name":"",
"otherfields":""
}
}
但我的问题是它永远不会是空的,有时会包含价值。
我也试过这个
{
"Name":"personname",
"address":[],
"place":[""],
"zipCode" :"zipcode"
}
但得到同样的问题。
问题是使用同名映射不同的对象类型对象和其他作为字符串数组。
我想将这两个字段保存在不同的文档中。
答案 0 :(得分:1)
这是由您的ElasticSearch映射引起的。字段在同一ES类型中不能具有不同的数据类型。正确的解决方案是使用插件的类型选择器功能来确保将不同的文档模式分配给不同的ES类型 - 这将防止映射冲突。
以下是通过传输插件的类型选择器功能将不同文档从CB映射到不同ES类型的说明:http://docs.couchbase.com/admin/elastic/adv-usage.html(向下滚动到名为&#34的部分;设置文档类型&#34)