• Elasticsearch系列(3):Elasticsearch操作入门


    创建Index

    新建Index,可以直接向Elastic服务器发送PUT请求,比如下面的命令创建了一个名为:logdb的Index。

    [root@elsearchserver ~]# curl -X PUT 'http://192.168.1.40:9200/logdb'

    Elastic服务器返回一个JSON对象,里面的acknowledged字段为true表示操作成功。

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

    注意:索引名必须全部小写,且不能以下划线开头,不能包含逗号。

    新增记录

    向指定的/Index/Type发送POST请求,就可以在Index里面新增一条记录。比如,向/logdb/debuglog发送请求,就可以新增一条debuglog调试日志记录。如下代码:

    curl -X POST 'http://192.168.1.40:9200/logdb/debuglog' -d '
    {
      "SystemCode": "Ubtrip",
      "Source": "ApprovalService",
      "Message": "数据库管理"
    }'

    上面的代码,向/logdb/debuglog发出了一个POST请求,添加一条记录。这时服务器返回的JSON对象里面,_id是一个随机字符串,如下代码:

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

    修改记录

    修改记录就是使用PUT请求,重新向Elastic服务器发送一次数据,下面的代码中,我们将原记录的Message由“数据库管理”修改为了“数据库管理,即DBA”,请求代码如下:

    http://192.168.1.40:9200/logdb/debuglog/qpzDUWIB9teAN1UfUbN_

    {
      "SystemCode": "Ubtrip",
      "Source": "ApprovalService",
      "Message": "数据库管理,即DBA"
    }

    服务器返回结果如下代码:

    {
        "_index": "logdb",
        "_type": "debuglog",
        "_id": "qpzDUWIB9teAN1UfUbN_",
        "_version": 2,
        "result": "updated",
        "_shards": {
            "total": 2,
            "successful": 1,
            "failed": 0
        },
        "_seq_no": 1,
        "_primary_term": 1
    }

    从结果可以看到,以下几个字段发生了变化。

    "_version": 2,
    "result": "updated",

    查询记录

    向/Index/Type发送GET请求,就可以查询记录。例如:查询索引logdb下Type为debuglog的所有记录,请求url如下:

    http://192.168.1.40:9200/logdb/debuglog/_search?pretty=true

    URL参数的pretty=true表过以易读格式返回。

    服务器返回结果如下:

    {
      "took" : 63,
      "timed_out" : false,
      "_shards" : {
        "total" : 5,
        "successful" : 5,
        "skipped" : 0,
        "failed" : 0
      },
      "hits" : {
        "total" : 2,
        "max_score" : 1.0,
        "hits" : [
          {
            "_index" : "logdb",
            "_type" : "debuglog",
            "_id" : "qpzDUWIB9teAN1UfUbN_",
            "_score" : 1.0,
            "_source" : {
              "SystemCode" : "Ubtrip",
              "Source" : "ApprovalService",
              "Message" : "数据库管理,即DBA"
            }
          },
          {
            "_index" : "logdb",
            "_type" : "debuglog",
            "_id" : "q5zTUWIB9teAN1UfvLNS",
            "_score" : 1.0,
            "_source" : {
              "SystemCode" : "Ubtrip",
              "Source" : "ApprovalService",
              "Message" : "数据库管理,即DBA"
            }
          }
        ]
      }
    }

    删除记录

    删除记录就是向服务器发送一个DELETE请求,例如,我要删除/logdb/debuglog下_id为“q5zTUWIB9teAN1UfvLNS”的记录,请求URL如下:

    curl -X DELETE 'http://192.168.1.40:9200/logdb/debuglog/q5zTUWIB9teAN1UfvLNS'

    服务器返回结果如下:

    {
        "_index": "logdb",
        "_type": "debuglog",
        "_id": "q5zTUWIB9teAN1UfvLNS",
        "_version": 2,
        "result": "deleted",
        "_shards": {
            "total": 2,
            "successful": 1,
            "failed": 0
        },
        "_seq_no": 1,
        "_primary_term": 1
    }

    再次查询/logdb/debuglog下所有记录,发现只剩下一条了,已经找不到_id为“q5zTUWIB9teAN1UfvLNS”的记录了。

    {
      "took" : 4,
      "timed_out" : false,
      "_shards" : {
        "total" : 5,
        "successful" : 5,
        "skipped" : 0,
        "failed" : 0
      },
      "hits" : {
        "total" : 1,
        "max_score" : 1.0,
        "hits" : [
          {
            "_index" : "logdb",
            "_type" : "debuglog",
            "_id" : "qpzDUWIB9teAN1UfUbN_",
            "_score" : 1.0,
            "_source" : {
              "SystemCode" : "Ubtrip",
              "Source" : "ApprovalService",
              "Message" : "数据库管理,即DBA"
            }
          }
        ]
      }
    }
  • 相关阅读:
    利用Navicat向MySQL数据库中批量插入多条记录的方法
    《Spring MVC+MyBatis快速开发与项目实战》-黄文毅2019:一书的源码和配套视频下载地址
    MySQL数据库建库时SQL语句中数据库名、表名用引号的问题以及COLLATE utf8_general_ci的含义
    [转]层行列和经纬度坐标之间的相互转化方法(谷歌地图)
    [Web 前端] VML、SVG、Canvas简介
    [Android Pro] 完美解决 No toolchains found in the NDK toolchains folder for ABI with prefix: mips64el-linux-android
    [Android Pro] so 动态加载—解决sdk过大问题
    [Android Pro] https://blog.csdn.net/gaugamela/article/details/79143309
    [web前端] 去哪儿网前端架构师司徒正美:如何挑选适合的前端框架?
    [web前端] yarn和npm命令使用
  • 原文地址:https://www.cnblogs.com/mcgrady/p/8631235.html
Copyright © 2020-2023  润新知