【问题标题】:Failure to index in Elasticsearch an array未能在 Elasticsearch 中索引数组
【发布时间】:2014-09-29 05:55:47
【问题描述】:

我有一个 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 的一个实例。

只要“项目”只有一个节点“元数据”一切正常,但如果有多个“元数据”节点,我会收到以下错误:

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

这很奇怪,因为 AFAIK 数组不需要任何映射预防措施:任何映射元素都可以在多个实例中发送。如果我预处理“项目”XElement 并删除除一个“元数据”节点之外的所有节点,索引就可以工作。

【问题讨论】:

    标签: arrays indexing elasticsearch xelement


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-02-04
      • 2012-10-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多