• ElasticSearch增删改查操作


    ElasticSearch增删改查操作

    官方文档: Elasticsearch Reference| Elastic

    Rest风格

    method url地址 描述
    PUT localhost:9200/索引名称/类型名称/文档id 创建文档(指定文档id)
    POST localhost:9200/索引名称/类型名称 创建文档(随机文档id)
    POST localhost:9200/索引名称/类型名称/文档id/_update 修改文档
    DELETE localhost:9200/索引名称/类型名称/文档id 删除文档
    GET localhost:9200/索引名称/类型名称/文档id 查询文档通过文档id
    POST localhost:9200/索引名称/类型名称/_search 查询所有数据

    ES的字段类型:

    • 字符串类型:text [会被分词器解析]、 keyword [不会被分词器解析]
    • 数值类型:long, integer, short, byte, double, float, half_float, scaled_float
    • 日期类型:date
    • 布尔值类型:boolean
    • 二进制类型:binary

    CRUD操作

    官网: Document APIs

    创建索引库

    创建索引并指定字段类型

    PUT /emp
    {
      "mappings": {
        "properties": {
          "name":{"type": "text"},
          "age":{"type": "integer"},
          "gender":{"type": "keyword"},
          "email":{"type": "text"}
        }
      }
    }
    

    官网: PUT Mapping API

    添加数据

    单条数据

    PUT /<target>/_doc/<_id>

    PUT /emp/_doc/1
    {
      "name":"tom",
      "age":"45",
      "gender":"M",
      "email":"tom@gmail.com"
    }
    

    批量数据

    PUT /_bulk

    PUT /_bulk
    {"index":{"_index" : "emp","_id":"2"}}
    {"name":"hattie","age":36,"gender":"M","email":"hattiebond@netagy.com"}
    {"index":{"_index" : "emp","_id":"3"}}
    {"name":"nanette","age":28,"gender":"F","email":"nanettebates@quility.com"}
    {"index":{"_index" : "emp","_id":"4"}}
    {"name":"dale","age":42,"gender":"M","email":"daleadams@boink.com"}
    {"index":{"_index" : "emp","_id":"5"}}
    {"name":"elinor","age":36,"gender":"M","email":"elinorratliff@scentric.com"}
    {"index":{"_index" : "emp","_id":"6"}}
    {"name":"virginia","age":29,"gender":"F","email":"virginiaayala@filodyne.com"}
    

    通过POST /_sql?format=txt查看插入的数据

    POST /_sql?format=txt
    {
      "query": "SELECT name,age,gender FROM emp"
    }
    

    更新数据

    # 直接覆盖
    PUT /emp/_doc/3
    {
      "name":"jerry",
      "age":"5",
      "gender":"M",
      "email":"jerry@gmail.com"
    }
    # 修改指定字段
    POST /emp/_doc/3/_update
    { 
      "doc":{
        "age":"8"
      }
    }
    

    删除数据

    1. 根据id删除数据DELETE /<index>/_doc/<_id>

      # 删除id为5的用户
      DELETE /emp/_doc/5
      
    2. 条件删除数据POST /<target>/_delete_by_query

      # 删除名为dale的用户
      POST /emp/_delete_by_query
      {
         "query": {
          "match": {
            "name": "dale"
          }
        }
      }
      

    查询数据

    官网: Query and filter context

    # 查询所有
    GET /emp/_doc/_search
    
    # 根据id查询
    GET /emp/_doc/1
    
    # 条件查询
    GET /emp/_doc/_search
    {
      "query":{
        "match":{
          "name":"tom"
        }
      }
    }
    # 显示指定字段的条件查询
    GET /emp/_doc/_search
    {
      "query":{
        "match":{
          "name":"tom"
        }
      },
      "_source":["name","age"]
    }
    
  • 相关阅读:
    Python 自省指南(原文http://www.ibm.com/developerworks/cn/linux/l-pyint/#ibm-pcon)
    PyDev for Eclipse 简介
    (转)盘点前 10 名的免费跨浏览器测试工具
    使用 JMeter 完成常用的压力测试
    Python 单元测试框架 —— PyUnit
    runtime实现对象存储型数据库——LHDB
    从零实现一个基于UDP的iOS聊天程序(一)-- GCDAsyncUdpSocket源码解析
    hadoop实战随笔_070818
    hadoop实战笔记_170816
    hadoop实战随笔_170814
  • 原文地址:https://www.cnblogs.com/liulyuan/p/14083750.html
Copyright © 2020-2023  润新知