首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >更新所有文档字段条目

更新所有文档字段条目
EN

Stack Overflow用户
提问于 2019-08-29 23:37:05
回答 2查看 33关注 0票数 0

我有一个ElasticSearch索引:example这个索引的类型为YYYYMMDD格式的日期。例如,example/20190810是一个索引,其类型包含在20190810上插入的文档。索引没有带日期的字段,所以我添加了一个字段。现在,我想要做的是获取每种类型的所有文档,并将日期作为_type插入。有没有办法做到这一点?

代码语言:javascript
复制
For example:
_type: 20190810,
volume: 22,
created: 20190810 <-- Date field I added to copy its type
EN

回答 2

Stack Overflow用户

发布于 2019-08-30 00:12:30

不幸的是,我认为答案是你不能/不应该这样做。

在较新版本的Elastic中,将只允许一种类型。即使您可以在现有文档上更新_type,ES7+也只允许每个索引使用一种类型。

大多数字段都是公平的,但据我所知,_type在创建后是不能修改的。您可以使用此脚本验证这一点。

代码语言:javascript
复制
POST example/_update_by_query
{
  "script": {
    "lang": "painless",
    "source": "ctx._type = ctx._source.date"
  }
}

哪种输出

代码语言:javascript
复制
{
  "error": {
    "root_cause": [
      {
        "type": "illegal_argument_exception",
        "reason": "Modifying [_type] not allowed"
      }
    ],
    "type": "illegal_argument_exception",
    "reason": "Modifying [_type] not allowed"
  },
  "status": 400
}

我用ES6对此进行了测试。ES7会给你一个关于在索引上有多个类型的错误。

票数 1
EN

Stack Overflow用户

发布于 2019-08-30 02:03:46

我同意Miek的回答,但也许我们可以提出一种替代方法来实现您正在尝试使用_type字段所做的事情。您可以将信息添加到文档中的新字段中,并且不会遇到在同一索引中有多个类型的问题(一个字段会有多个值)

如果我猜您这样做是为了能够在查询中使用索引/类型语法来获取数据,那么我简单地建议您使用搜索/查询apis来获取给定日期的数据。

您是否可以编辑问题以包含更多关于您正在尝试实现的内容的上下文?

(注:声誉太低,无法置评)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57713557

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档