es如何修改字段类型

这篇具有很好参考价值的文章主要介绍了es如何修改字段类型。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

由于es无法修改mapping,所以要通过新建索引的方式来修改字段类型

演示:如下是一个包含date字段的索引ttteset-000001,接下来我们将其字段类型改为text类型文章来源地址https://www.toymoban.com/news/detail-509126.html

1、准备创建索引及添加数据


PUT ttteset-000001
{
  "mappings": {
    "dynamic_date_formats": ["MM/dd/yyyy"]
  }
}

PUT ttteset-000001/_doc/1
{
  "create_date": "09/25/2015"
}

GET ttteset-000001/_search
{
  "query": {
    "match_all": {}
  }
}

GET ttteset-000001/_mapping

2、创建过渡索引

# 新建索引ttteset-000002,字段类型为text
PUT ttteset-000002
{
  "mappings": {
    "properties": {
      "create_date": {
        "type": "text"
      }
    }
  }
}

3、迁移数据

# 迁移数据
POST _reindex
{
  "source": {
    "index": "ttteset-000001"
  },
  "dest": {
    "index": "ttteset-000002"
  }
}

# 查询
GET ttteset-000002/_search
{
  "query": {"match_all": {}}
}

# 删除ttteset-000001
DELETE ttteset-000001

# 最后再将ttteset-000001创建出来,把ttteset-000002的数据再导回去即可
PUT ttteset-000001
{
  "mappings": {
    "properties": {
      "create_date": {
        "type": "text"
      }
    }
  }
}

POST _reindex
{
  "source": {
    "index": "ttteset-000002"
  },
  "dest": {
    "index": "ttteset-000001"
  }
}

GET ttteset-000001/_search
{
  "query": {"match_all": {}}
}

4、如何改变字段名称

## 此外还可以进行字段名修改,新创建的索引字段名为create——time

PUT ttteset-000001
{
  "mappings": {
    "properties": {
      "create_time": {
        "type": "text"
      }
    }
  }
}

POST _reindex
{
  "source": {
    "index": "ttteset-000002"
  },
  "dest": {
    "index": "ttteset-000001"
  },
  "script": {
    "source": "ctx._source.create_time= ctx._source.remove(\"create_date\")"
  }
}

到了这里,关于es如何修改字段类型的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • ES修改字段的数据类型

    原索引 : ads_assets_index_list_test_df 中 index_value 字段数据类型为 float, 无法使用sort进行排序,现需要改成 keyword 。 步骤一:创建过渡索引 重新创建一个索引 ads_assets_index_list_test00_df, index_value 字段数据类型为 keyword 步骤二:迁移数据 将旧索引的数据导入新索引 查询可以看到

    2024年02月06日
    浏览(27)
  • kibana中ES修改某个字段类型问题

     近日,发现同步数据到es的时候,有个新建的索引动态适配了mapping,而往往这种会有字段类型不是我们想要的,比如我这就有个tid字段,此字段要在聚合操作中使用,而此时的tid被识别成text类型了,而text不支持聚合,所以要更改字段类型为long或者keyword,注意es 不支持直接

    2024年02月08日
    浏览(39)
  • es获取mapping中所有的字段(回溯)

            有时候想看看es中某个索引中所有的字段,直接通过查询mapping是很难看出所有的字段的,里面包含的属性太多了。本博文将实现获取mapping中所有字段的算法。 示例new_user2索引中的mapping值: 示例代码: 【直接在mapping中获取】 运行结果: 注意: 也可以直接通过查

    2024年02月11日
    浏览(22)
  • 【Elasticsearch教程12】Mapping字段类型之object

    首先给出结论: 在一个字段存储 一个 JSON对象,可以选择 object 类型 在一个字段存储 多个 JSON对象,可以选择 nested 类型 假设有一个人员信息如下: 建表时会建一个字段存一个值,它的缺点是字段 扁平化 , 无法直观的表现 层级关系 。 字段 值 region US manager_age 30 manager_firstn

    2024年02月09日
    浏览(22)
  • ElasticSearch数据库修改分片数、副本数及修改mapping字段

            对于已经存在的索引,副本数可以随时修改。 示例演示如下:         ElasticSearch中的数据会被分别存储在不同的分片上,索引库的分片数量是在索引库创建的时候通过settings去设置的,如果不设置,分片数默认是5,分片数一旦确定就不能改变。分片数量的设

    2024年02月02日
    浏览(39)
  • ES 新增字段和删除字段、修改字段值

    新增字段: 删除字段: 修改es的某个字段值:

    2024年02月05日
    浏览(29)
  • es head 新增字段、修改字段、批量修改字段、删除字段、删除数据、批量删除数据

    目录 一、新增字段 二、修改字段值 三、批量修改字段值 ​四、删除字段 五、删除数据/文档 六、批量删除数据/文档 put   http://{ip}:{port}/{index}/_mapping/{type}     其中,index是es索引、type是类型 数据: 例子: 注意:如果报错Types cannot be provided in put mapping requests, unless the in

    2024年02月04日
    浏览(40)
  • Sql Server增加字段、修改字段、修改类型、修改默认值

    1、修改字段名: alter table 表名 rename column A to B 2、修改字段类型: alter table 表名 alter column 字段名 type not null 3、修改字段默认值 alter table 表名 add default (0) for 字段名 with values 如果字段有默认值,则需要先删除字段的约束,在添加新的默认值, select c.name from sysconstraints a i

    2024年02月06日
    浏览(30)
  • uniapp分享微信提示由于不支持的分享类型无法分享到微信,App分享为微信小程序方法,由于不支持的分享类型无法分享到微信,由于应用和小程序未绑定在同意微信开放平台账号,无法分享到微信.

    在使用uniapp开发App分享微信,提示 由于不支持的分享类型无法分享到微信 ,就很苦恼,明明已经按照文档,该配置的都配置了,结果兴致勃勃的分享一下,结果提示一个这种错误,记录一下解决方案。 配置关联小程序 登录微信开放平台 https://open.weixin.qq.com/ 点击直达 在 管

    2024年02月09日
    浏览(36)
  • 【Elasticsearch教程6】Mapping字段类型之二进制binary

    binary类型接收一个Base64编码的字符串,默认情况二进制字段 不能被存储和检索 。 binary不能被存储? 这个意思不是说没有存储在ES,而是说mapping中该字段的store参数默认是false。 默认情况下字段的值都会存储到 _source 里, binary 类型的值也是如此。 如果 store 属性设置为true,

    2024年02月05日
    浏览(40)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包