我正在尝试解决问题,同时将我的数据从沙发床服务器复制到elasticsearch。

复制时出错:对象映射[place]试图序列化一个没有关联字段的值,当前值[placeName]

我的文件是 { "Name":"personname", "address":[], place:["placeName"], "zipCode" :"zipcode" }
如果此文档更改如下,它将起作用:{
"Name":"personname", "address":[], place:[], "zipCode" :"zipcode"}

我在另一个文档中使用了与对象类型相同的名称。

{
   "place":{
     "name":"",
     "otherfields":""
   }
}

但是我的问题是它永远不会为空,有时会包含值(value)。

我也尝试过
{ "Name":"personname", "address":[], "place":[""], "zipCode" :"zipcode" }但遇到同样的问题。

问题是具有相同的名称映射到了不同的对象类型 Object,而另一个映射为数组字符串。

我想将这两个字段保留在不同的文档中。

最佳答案

这是由您的ElasticSearch映射引起的。同一ES类型内的字段不能具有不同的数据类型。正确的解决方案是使用插件的类型选择器功能,以确保将不同的文档架构分配给不同的ES类型-这将防止映射冲突。

这是有关如何通过传输插件的类型选择器功能将不同文档从CB映射到不同ES类型的说明:http://docs.couchbase.com/admin/elastic/adv-usage.html(向下滚动到名为“设置文档类型”的部分)

关于elasticsearch - 如何解决Couchbase Elasticsearch复制中的索引错误?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/28361349/

10-11 09:05