• 云途科技成立于2010年 - 专注全球跨境电商服务器租赁托管!
  • 帮助中心

    您可以通过下方搜索框快速查找您想知道的问题

    elasticsearch mapping 添加 编辑 删除字段

      in  unix      Tags: 

    elasticsearch mapping添加字段比较方便。暂不支持编辑字段,删除字段,但是可以采用其他方式来实现编辑字段和删除字段。

    1,添加mapping字段

    # curl -XPOST "http://127.0.0.1:9200/ik/chinese/_mapping?pretty" -H "Content-Type: application/json" -d '
    {
        "chinese": {
                "properties": {
                    "sex": {
                        "type": "integer"
                    }
                }
            }
      }
    '
    
    $ curl -XGET "http://127.0.0.1:9200/ik/_mapping?pretty"
    {
      "ik" : {
        "mappings" : {
          "chinese" : {
            "properties" : {
              "description" : {
                "type" : "text"
              },
              "id" : {
                "type" : "integer"
              },
              "sex" : {
                "type" : "integer"   //刚加的字段
              },
              "username" : {
                "type" : "keyword"
              }
            }
          }
        }
      }
    }
    

    2,编辑字段

    2.1,创建一个新的索引

    //创建索引
    $ curl -XPUT 'http://127.0.0.1:9200/ik_v2?pretty'
    {
      "acknowledged" : true,
      "shards_acknowledged" : true,
      "index" : "ik_v2"
    }
    
    //创建mapping
    # curl -XPOST "http://127.0.0.1:9200/ik_v2/chinese/_mapping?pretty" -H "Content-Type: application/json" -d '
    {
        "chinese": {
                "_all": {
                  "analyzer": "ik_max_word"
                },
                "properties": {
                    "id": {
                        "type": "integer"
                    },
                    "username": {
                        "type": "text"      //类型由keyword变成了text
                    },
                    "description": {
                        "type": "text"
                    }
                }
            }
      }
    '
    

    2.2,把老的IK的数据导出,如果不改变字段的顺序,可以把导出的文件,改一下索引名,就可以直接导入到ik_v2。elasticdump 导出 导入 elasticsearch

    2.3,创建_aliases

    # curl -XPOST "localhost:9200/_aliases?pretty" -H "Content-Type: application/json" -d '
    {
        "actions": [
            { "add": {
                "alias": "testik",
                "index": "ik"
            }}
        ]
    }
    '
    

    2.4可以通过设置的别名,查找数据

    # curl -XPOST "http://127.0.0.1:9200/testik/chinese/_search?pretty"  -H "Content-Type: application/json"  -d '
    {
        "query": {
            "match_all": {
            }
        }
    }
    '
    

    2.5,将别名指向到新的ik_v2

    # curl -XPOST "http://localhost:9200/_aliases?pretty" -H "Content-Type: application/json" -d '
    {
        "actions": [
            { "remove": {
                "alias": "testik",
                "index": "ik"
            }},
            { "add": {
                "alias": "testik",
                "index": "ik_v2"
            }}
        ]
    }
    '
    

    在这里要注意remove,其实可以不用remove。如果不remove的话,在读取testik会有数据重复,分别来自ik,ik_v2。其实这个testik好比数据库连接的中间件。这样操作,可以实现es服务不宕机的情况,实现平滑过度。

    # curl -XPOST "http://127.0.0.1:9200/testik/chinese/_search?pretty"  -H "Content-Type: application/json"  -d '
    > {
    >     "query": {
    >         "match_all": {
    >         }
    >     }
    > }
    > '
    {
      "took" : 1,
      "timed_out" : false,
      "_shards" : {
        "total" : 10,
        "successful" : 10,
        "skipped" : 0,
        "failed" : 0
      },
      "hits" : {
        "total" : 4,
        "max_score" : 1.0,
        "hits" : [
          {
            "_index" : "ik",
            "_type" : "chinese",
            "_id" : "hlmlPmMB0NIfMbbA0ap6",
            "_score" : 1.0,
            "_source" : {
              "id" : 1,
              "username" : "中国高铁速度很快",
              "description" : "如果要修改一个字段的类型"
            }
          },
          {
            "_index" : "ik",
            "_type" : "chinese",
            "_id" : "h1mlPmMB0NIfMbbA06qP",
            "_score" : 1.0,
            "_source" : {
              "id" : 2,
              "username" : "中国高铁测试",
              "description" : "基基本面震荡"
            }
          },
          {
            "_index" : "ik_v2",
            "_type" : "chinese",
            "_id" : "tFmtPmMB0NIfMbbAQa-9",
            "_score" : 1.0,
            "_source" : {
              "id" : 2,
              "username" : "中国高铁测试",
              "description" : "基基本面震荡"
            }
          },
          {
            "_index" : "ik_v2",
            "_type" : "chinese",
            "_id" : "mFmtPmMB0NIfMbbAOK8w",
            "_score" : 1.0,
            "_source" : {
              "id" : 1,
              "username" : "中国高铁速度很快",
              "description" : "如果要修改一个字段的类型"
            }
          }
        ]
      }
    }
    

    3,删除字段

    删除字段根编辑字段操作差不多,只不过在导入数据的时候,处理会麻烦点。要把导出的json数据中,删除掉字段对应的数据去掉,才能导入。



    • 外贸虚拟主机

      1GB硬盘

      2个独立站点

      1000M带宽

      不限制流量

      美国外贸专用虚拟主机,cPanel面板,每天远程备份.
      服务器配置:2*E5 32核,96GB 内存,4*2TB 硬盘 RAID10 阵列.

      ¥180/年

    • 美国/荷兰外贸VPS

      2核CPU

      1G内存

      30硬盘

      10M带宽

      美国/荷兰外贸云服务器,专注外贸服务器行业12年.
      服务器配置:2*E5 32核,96GB 内存,4*2TB 硬盘 RAID10 阵列.

      ¥99/月

    • 全球外贸服务器

      8核CPU

      32G内存

      1TB硬盘

      1000M带宽

      已部署数据中心:美国洛杉矶/亚特兰大、荷兰、加拿大、英国伦敦、德国、拉脱维亚、瑞典、爱沙尼亚
      自有机柜(全球九大数据中心),稳定在线率:99.9%

      ¥999/月 原价1380

    7*24小时 在线提交工单

    如果您的问题没有得到解决,推荐您在线提交工单,我们的客服人员会第一时间为您解决问题

    展开