如何解决couchbase elasticsearch replication中的indexing error?

How to solve the indexing error in couchbase elasticsearch replication?

我试图在将数据从 couchbase 服务器复制到 elasticsearch 时解决这个问题。

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

我的文档是 { "Name":"personname", "address":[], place:["placeName"], "zipCode" :"zipcode" }

如果像这样更改此文档,它将起作用: {
"Name":"personname", "address":[], 地方:[], "zipCode" :"zipcode" }

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

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

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

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

问题是同名映射到不同的对象类型对象和其他作为数组的字符串。

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

这是由您的 ElasticSearch 映射引起的。一个字段在同一个 ES 类型中不能有不同的数据类型。正确的解决方案是使用插件的类型选择器功能来确保将不同的文档模式分配给不同的 ES 类型——这将防止映射冲突。

这里解释了如何通过传输插件的类型选择器功能将不同的文档从 CB 映射到不同的 ES 类型:http://docs.couchbase.com/admin/elastic/adv-usage.html(向下滚动到名为 "Setting document type" 的部分)