zoukankan      html  css  js  c++  java
  • (07)ElasticSearch 使用Kibana实现基础增删改查

      本篇的主要内容:认识ElasticSearch的客户端Kibana、添加索引、查询索引、添加文档、修改文档、查询文档、删除文档、删除索引

      1、Kibana的操作界面如下:

      2、添加索引

    PUT /lib/
    {
      "settings":{
        "index":{
          "number_of_shards":3,
          "number_of_replicas":0
        }
      }
    }

      索引名是lib
      分片数number_of_shards是3,分片数一旦确定是不能修改
      备份数量number_of_replicas是0

      添加默认索引如下:

    PUT lib

      分别执行 GET lib查看指定添加和默认添加的区别:默认分片数是5 备份数是1

    {
      "lib": {
        "aliases": {},
        "mappings": {},
        "settings": {
          "index": {
            "creation_date": "1569314525913",
            "number_of_shards": "3",
            "number_of_replicas": "0",
            "uuid": "UtdhpvQXRxibzTXkj9HPSA",
            "version": {
              "created": "6020499"
            },
            "provided_name": "lib"
          }
        }
      }
    }
    {
      "lib": {
        "aliases": {},
        "mappings": {},
        "settings": {
          "index": {
            "creation_date": "1569314833757",
            "number_of_shards": "5",
            "number_of_replicas": "1",
            "uuid": "5mwEdY0ZQu2ZP-uqrOFyGg",
            "version": {
              "created": "6020499"
            },
            "provided_name": "lib2"
          }
        }
      }
    }

      3、查看索引

      下面的几种方法都可以查到所有的索引名称,只是展示的内容不同,_all 包含了aliases、mappings、settings

    GET _all
    GET _mappings
    GET _mapping
    GET _aliases
    GET _alias
    GET _settings
      GET _all结果如下:如果有多个的话会列出所有的。
    {
      "lib": {
        "aliases": {},
        "mappings": {},
        "settings": {
          "index": {
            "creation_date": "1569314833757",
            "number_of_shards": "5",
            "number_of_replicas": "1",
            "uuid": "5mwEdY0ZQu2ZP-uqrOFyGg",
            "version": {
              "created": "6020499"
            },
            "provided_name": "lib2"
          }
        }
      }
    }

      查询某个索引

      以下的几个方法可以查询某个索引,展示的内容不同,GET lib 展示的内容包含了其他3项

    GET lib
    GET lib/_alias
    GET lib/_mapping
    GET lib/_settings

      GET lib

    {
      "lib": {
        "aliases": {},
        "mappings": {},
        "settings": {
          "index": {
            "creation_date": "1569314525913",
            "number_of_shards": "3",
            "number_of_replicas": "0",
            "uuid": "UtdhpvQXRxibzTXkj9HPSA",
            "version": {
              "created": "6020499"
            },
            "provided_name": "lib"
          }
        }
      }
    }

      4、添加文档

      添加文档类似于向数据库中添加记录,有两种方式put和post,一个索引下面只能添加 一种类型

      使用PUT添加文档,如下:

    PUT /lib/user/1
    {
        "first_name":"Jane",
        "last_name":"Smith",
        "age":32,
        "about":"I like to collect rock albums",
        "interests":[ "music" ]
    }

      其中lib是创建的索引,user是类型名,1是添加的文档的id,使用PUT添加文档必须要有id。

      如果使用POST添加文档,可以不指定id,elasticsearch会自己生成id,如下:

    POST /lib/user/
    {
        "first_name":"Fir",
        "age":23,
        "about":"I like to build cabinets",
        "interests":[ "forestry" ]
    }

      5、查询文档

      现在只介绍两种查询 文档的方式,根据id查询和查询出所有文档

      查询id为1的文档

    GET lib/user/1

      结果如下:

    {
      "_index": "lib",
      "_type": "user",
      "_id": "1",
      "_version": 1,
      "found": true,
      "_source": {
        "first_name": "Jane",
        "last_name": "Smith",
        "age": 32,
        "about": "I like to collect rock albums",
        "interests": [
          "music"
        ]
      }
    }

      查询索引为lib、类型为user下的所有文档

    GET /lib/user/_search
    {
      "query":{
        "match_all":{}
      }
    }

      结果如下:

    {
      "took": 1,
      "timed_out": false,
      "_shards": {
        "total": 3,
        "successful": 3,
        "skipped": 0,
        "failed": 0
      },
      "hits": {
        "total": 2,
        "max_score": 1,
        "hits": [
          {
            "_index": "lib",
            "_type": "user",
            "_id": "1",
            "_score": 1,
            "_source": {
              "first_name": "Jane",
              "last_name": "Smith",
              "age": 32,
              "about": "I like to collect rock albums",
              "interests": [
                "music"
              ]
            }
          },
          {
            "_index": "lib",
            "_type": "user",
            "_id": "y6mQYm0BJNrNYF2GcZz1",
            "_score": 1,
            "_source": {
              "first_name": "Fir",
              "age": 23,
              "about": "I like to build cabinets",
              "interests": [
                "forestry"
              ]
            }
          }
        ]
      }
    }

      查询lib索引下类型是user,文档id是1的文档,只查询字段age和about

    GET /lib/user/1?_source=age,about

      结果如下:

    {
      "_index": "lib",
      "_type": "user",
      "_id": "1",
      "_version": 1,
      "found": true,
      "_source": {
        "about": "I like to collect rock albums",
        "age": 32
      }
    }

      6、修改文档

      修改文档有两种方法,一个是用PUT直接覆盖掉原来的,另一个就是用POST只修改要改的部分。

      第一中方法,将id为1的age修改为36:

    PUT /lib/user/1
    {
        "first_name":"Jane",
        "last_name":"Smith",
        "age":36,
        "about":"I like to collect rock albums",
        "interests":[ "music" ]
    }

      第二中方法,将id为1的age修改为33

    POST /lib/user/1/_update
    {
        "doc":{
           "age":33
        }
    }

      7、删除文档

    DELETE /lib/user/1

      8、删除索引

    DELETE /lib
  • 相关阅读:
    linux hosts.equiv设置解析
    linux 普通synflood攻击防范网络参数设置
    电脑如何刻录光盘的方式
    Linux系统服务详解
    linux下history命令显示历史指令记录的使用方法
    tkinter模块常用参数
    python使用tkinter做界面之颜色
    python进行linux系统监控
    Windows 系统cmd设置添加静态路由方式
    PyCharm在win10的64位系统安装实例
  • 原文地址:https://www.cnblogs.com/javasl/p/11405353.html
Copyright © 2011-2022 走看看