arrays - 无法在Elasticsearch数组中建立索引

标签 arrays indexing elasticsearch xelement

我有一个Elasticsearch索引,其中具有“元数据”元素的以下映射:

metadata: {
  dynamic: true
  properties: {
    id: {
      type: string
    }
    data: {
      dynamic: true
      properties: {
        ...
      }
    }
  }
}

我通过执行以下NEST调用来创建索引条目:
    var response = elasticClient.Index(item, x =>
        x.Index("testIndex").Type("clip").Id(itemId));

其中“item”是XElement的实例。

只要“item”只有一个节点“metadata”,一切正常,但是如果有多个“metadata”节点,我将得到以下错误:

“[clip_full]的对象映射与[元数据]的数组试图解析为数组,但是得到了EOF,同一字段的类型是否不匹配?”

这很奇怪,因为AFAIK数组不需要任何映射预防措施:任何映射的元素都可以在多个实例中发送。并且,如果我对“item” XElement进行预处理并删除除一个“metadata”节点以外的所有节点,则索引将起作用。

最佳答案

我有同样的问题,它似乎与如何创建数据有关。我正在搜索有关它的更多信息,但似乎对象预解析会转换对象本身中的单个对象数组,从而破坏了对象架构。

编辑:通常,问题来自使用该工具的人。我的json代写错了,在2个文档之间的数组中插入了不同的类型。即创建了一些字符串,而不是数组中的对象。

关于arrays - 无法在Elasticsearch数组中建立索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25157988/

相关文章:

c++ - 放置新+数组+对齐

arrays - 将新元素附加到数组导致应用程序崩溃的异常错误

R - 如何重新排序行索引号

mongodb - DynamoDB vs ElasticSearch vs S3 - 哪种服务用于超快获取/放置 10-20MB 文件?

docker - Elasticsearch Docker慢日志文件位置设置

java - ArrayIndexOutofBoundException - Java - Android - 接收流数据并存储在多维数组中 Java

javascript - 将数组复制到 Javascript 中较大数组的中间

date - 无法在ElasticSearch上定义日期时间索引

mysql - 在 mysql 中缓慢选择

c# - 组合Elasticsearch中的字段