• 二、elasticsearch索引基本操作


    一、相关概念

    1.1 结构类型

    索引(index):相对应于数据库

    类型(type): 相对应于数据库中的表

    文档(document): 相对应于数据库中的表的行

    属性(field): 相对应于数据库中的表中行的列

    结构如下:

    二,常用的restful语法(es7)

    1.索引的操作

    查询所有索引

    http://ip:9200/_cat/indices 

    新增索引文档,即可自动增加一个索引,索引的字段类型会自动猜测

    #put或post 索引名/类型名/id
    put http://ip:9200/customer2/external2/1
    #body json
    {
    "name":"John Doe1", "age":20 }

    返回结果:

    {
        "_index": "customer2",
        "_type": "external2",
        "_id": "1",
        "_version": 1,
        "result": "created",
        "_shards": {
            "total": 2,
            "successful": 1,
            "failed": 0
        },
        "_seq_no": 0,
        "_primary_term": 1
    }

    PUT和POST都可以 POST新增。如果不指定id,会自动生成id。指定id就会修改这个数据,并新增版本号; PUT可以新增也可以修改。PUT必须指定id;由于PUT需要指定id,我们一般用来做修改操作,不指定id会报错。

    新增索并指定数据类型映射

    #put /索引名
    put http://ip:9200/customer3

    #body json

    {
      "mappings": {
        "properties": {
          "age": {
            "type": "integer"
          },
          "name": {
            "type": "keyword"
          }
        }
      }
    }

     返回结果:

    {
        "acknowledged": true,
        "shards_acknowledged": true,
        "index": "customer3"
    }

     查询单个索引

    get /索引名
    get http://ip:9200/customer2

    返回结果:

    {
        "customer2": {
            "aliases": {},
            "mappings": {
                "properties": {
                    "age": {
                        "type": "long"
                    },
                    "name": {
                        "type": "text",
                        "fields": {
                            "keyword": {
                                "type": "keyword",
                                "ignore_above": 256
                            }
                        }
                    }
                }
            },
            "settings": {
                "index": {
                    "creation_date": "1610502090644",
                    "number_of_shards": "1",
                    "number_of_replicas": "1",
                    "uuid": "0DPrhl5tRuaUZX-N4oplbQ",
                    "version": {
                        "created": "7060299"
                    },
                    "provided_name": "customer2"
                }
            }
        }
    }

     修改索引:可新增新的字段映射,对于已经存在的字段映射,我们不能更新。更新必须创建新的索引,进行数据迁移。

    新增新的字段映射

    #put /索引名/_mapping
    put http://ip:9200/customer3/_mapping

    #body json

    {
      "properties": {
        "city": {
          "type": "keyword",
          "index": false
        }
      }
    }

     返回结果

    {
        "acknowledged": true
    }

     修改字段映射,先创建新的索引

    数据迁移

    POST _reindex [固定写法]
    {
      "source":{
          "index":"twitter"//旧索引
       },
      "dest":{
          "index":"new_twitters"//新索引
       }
    }

     由此,不能改变字段名

    删除索引

    #delete /索引名
    delete http://ip:9200/customer4

     返回结果

    {
        "acknowledged": true
    }
  • 相关阅读:
    WebAssembly API & MDN All In One
    Apple iPhone 14 Pro 药丸设计看不懂,药丸上面那条屏幕缝隙完全没有用处呀?
    API 调试工具 All In One
    macOS Time Machine All In One
    使用 macOS 输入多个空格,会自动添加一个点 bug All In One
    手把手的教你如何使用 Vite 搭建一个 React UI 组件库 All In One
    LeetCode 两数相加算法题解 All In One
    如何把 iPad 作为 Mac 扩展屏幕使用 All In One
    【DEMO】【C/C++】最简单的一种回调函数
    Qt中cvMat与QImage,QPixmap的转换
  • 原文地址:https://www.cnblogs.com/panql341/p/14269901.html
Copyright © 2020-2023  润新知