kibana中ES修改某个字段类型问题

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

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

1、创建工具人索引testnamenew并自定义其mapping 

PUT testnamenew
{
  "mappings": {
    "properties": {
      "cotent" : {
        "type" : "keyword"
      },      
      "tid" : {
        "type" : "long"
      }
    }
  },
  "settings": {
    "index":{
      "number_of_shards":1,
      "number_of_replicas":1
    }
  }
}

2、查询工具人索引的相关信息

#单独查询某个索引的设置
GET /testnamenew/_settings
#查询testnamenew索引的document的结构
GET /testnamenew/_mapping

3、 使用下面的语句(POST _reindex),把原索引testnameold的值复制到新索引testnamenew上。

POST _reindex
{
  "source": {
    "index": "testnameold"
  },
  "dest": {
    "index": "testnamenew"
  }
}

4、查询新索引数据是否复制正确

GET /testnamenew/_search


5、#删除原索引

DELETE testnameold

6、此步骤非常重要,删除原索引后,需要在新建同名的索引,即在新建testnameold索引,设置符合你要求的mapping

PUT testnameold
{
  "mappings": {
    "properties": {
      "cotent" : {
        "type" : "keyword"
      },      
      "tid" : {
        "type" : "long"
      }
    }
  },
  "settings": {
    "index":{
      "number_of_shards":1,
      "number_of_replicas":1
    }
  }
}

7、然后在把testnamenew的数据复制到新建的testnameold中,即需要执行以下的操作 

POST _reindex
{
  "source": {
    "index": "testnamenew"
  },
  "dest": {
    "index": "testnameold"
  }
}

 坑注:如果删除原索引,不在重新建一下testnameold,而直接执行_reindex,那么原索引的mapping还是原来错误的,这个是我这边遇到的坑。。。

7、以上都没什么问题后,你可以查看下testnameold索引的信息,此时的mapping应该就是符合你要求的喽,然后就可以删除工具人索引testnamenew了

仅此记录,完结撒花✿✿ヽ(°▽°)ノ✿文章来源地址https://www.toymoban.com/news/detail-479625.html

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

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

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

相关文章

  • ES索引修改mappings与重建reindex详解之修改字段类型

    elasticsearch一直在使用,这里总结一下mappings的修改方法,分为两种情况: 增加新的字段,这种很简单; 修改已有的字段类型,这种就比较麻烦了,需要reindex,对索引进行迁移重建。 1.1、获取mappings 增加一个 new_stocks 字段,如下: 再查一下: 可以看到new_stocks字段已经加上去

    2024年02月17日
    浏览(31)
  • 成功解决Impala中修改parquet表的字段类型问题

    最近有个小伙伴在开发中遇到了 Impala 中修改 Parquet 表的字段类型问题,于是开启了问题解决之路。 这个小伙伴在 Impala 中对 Hive 的表进行了删除、修改字段类型等操作,等这些操作后去 Impala 去查询该表的时候,出现了如下的问题: 问题1: 问题2:

    2024年02月16日
    浏览(37)
  • MySql Update修改(替换)某个字段中包含的某个值,根据条件修改替换某个字段的一部分值

    背景: 由于数据迁移和域名变更,Mysql中存储的文件下载地址变更; 要替换某一个字段中的部分内容,可以用update 语句和REPLACE方法,结构如下: UPDATE 表名 SET 字段名= REPLACE( 需要替换值的字段名, \\\'替换前\\\', \\\'替换后\\\' ) WHERE 字段名 REGEXP \\\"替换前的字段值\\\"; MySql U

    2024年02月05日
    浏览(32)
  • Mysql同步到ES时date和time字段类型转换问题解决办法

    这个问题中发生问题的es字段映射类型为date类型!!! 字符串类型的会好很多,关键我这边是通过logstash生成索引,并且全量同步的,不好改索引类型!!! 问题描述: 根据错误日志,似乎是Elasticsearch无法解析日期字段 START_TIME 。这个字段的格式是 YYYY-MM-DD HH:MM:SS ,而Ela

    2024年02月16日
    浏览(34)
  • ES中删除索引中某个字段

    ES中无法直接增删索引中的字段,只能能够覆盖,即重建新的索引 例:删除索引my_index中的source字段 先将source字段中的数据删除 否则后面reindex时,索引中会自动增加source字段和类型 创建新的索引my_index_bak,该mapping中不包含source字段 数据迁移 删除原来的索引 再重新创建索引

    2024年02月11日
    浏览(31)
  • ES(Kibana)更新指定字段值

    更新指定字段值,类似MySQL语句的update,ES中更新指定字段的值 具体语法如下: 示例如下: 更新test_index_update索引,_doc类型为doc,_id为12345,更新字段名称为field_test,更新后的值为field_value_test

    2024年02月11日
    浏览(41)
  • ES替换某个索引下的字段的值

    在ES的操作中,如果我们已经同步完所有的索引,但是发现同步的时候数据出现了失误,那么在数据量很大的情况下还是要避免重新同步,这个时候就用到了更新替换操作: 针对于name字段进行替换,将name字段中包含/的替换成/ 针对nested结构的字段则有点不同了,下面的操作

    2024年02月06日
    浏览(34)
  • 修改MySQL所有表的编码或者修改某个字段的编码

    在修改之前需要确认MySQL服务器的默认字符集和排序规则是utf8mb4,否则需要先修改MySQL服务器的默认字符集。可以通过以下命令查看MySQL服务器当前的默认字符集和排序规则: 如果当前默认字符集和排序规则不是utf8mb4,可以在MySQL的配置文件(如 my.cnf)中添加以下内容: 然后

    2024年02月08日
    浏览(33)
  • ES(Kibana)索引拷贝/查看配置信息/查看字段信息/添加新字段/创建索引视图

    kibana - Management - Index Patterns - Create index pattern - 输入索引名称(注意这里的*号为匹配符,若确定某个具体的索引请删除) - Next step - Time Filter field name(选择是否使用时间选择器) - Create index Pattern -完成(在Discover中可查看此视图)

    2024年02月16日
    浏览(47)
  • es elasticsearch kibana 根据 id 只更新部分字段

    官方文档: https://www.elastic.co/guide/en/elasticsearch/reference/current/docs-update.html#_update_part_of_a_document 给自己记录一下: 其中 test 是索引名,需要根据实际情况替换。_update 是固定值,表示更新文档。1 是想要更新文档的主键,根据实际情况替换。 “doc” 是固定值,“my_field_name” 是被

    2024年02月13日
    浏览(33)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包