当前位置: 首页 > article >正文

常用的es操作

前言

我们前面写过ES基础操作和ES高级查询 写的都很细,但是很多时候我们仅仅是忘记具体的某个语法,去那两篇博客查找就很麻烦了,这篇博客就把常用的ES操作进行总结。

常用操作

  1. 建索引(建表,不过并没有指定字段名和类型)
向ES服务器发送PUT请求:
http://127.0.0.1:9200/索引名
  1. 删除索引(删表)
向ES服务器发送DELETE请求:
http://127.0.0.1:9200/索引名
  1. 创建文档(往表中插入数据)
向 ES 服务器发 POST 请求:
http://127.0.0.1:9200/索引名/_doc

请求体内容:
{
"name":"zs",
"age":23
}

一般都会指定唯一id:

向 ES 服务器发 POST 请求:
http://127.0.0.1:9200/索引名/_doc/1

请求体内容:
{
"name":"zs",
"age":23
}
  1. 根据唯一id查看对应的一行数据
向 ES 服务器发 GET 请求 :
http://127.0.0.1:9200/索引名/_doc/1
  1. 根据唯一id更新对应的一条数据中所有字段
向 ES 服务器发 POST 请求 :
http://127.0.0.1:9200/索引名/_doc/1

请求体中写入要插入的json字符串
{
"name":"ls",
"age":24
}
  1. 根据唯一id更新一行指定字段的数据
向 ES 服务器发 POST 请求 :
http://127.0.0.1:9200/索引名/_update/1

请求体内容:
{ 
 "doc": {
 "age":24
 } 
}
  1. 根据唯一标识删除一行数据
向 ES 服务器发 DELETE 请求 :
http://127.0.0.1:9200/索引名/_doc/1
  1. 根据查询条件删除对应的数据
向 ES 服务器发 POST 请求 :
http://127.0.0.1:9200/索引名/_delete_by_query

请求体内容:
{
 "query":{
	 "match":{
	 "price":4000.00
	 }
 }
}
  1. 给索引添加映射
向 ES 服务器发 PUT或者POST 请求 :
http://127.0.0.1:9200/索引名/_mapping

请求体内容:
{
 "properties": {
	 "name":{
	 "type": "text",
	 "index": true
	 },
	 "age":{
	 "type": "long",
	 "index": false
	 }
 }
}
  1. 给索引新增一个字段
向 ES 服务器发 PUT 请求 :
http://127.0.0.1:9200/索引名/_mapping

请求体内容:
{
  "properties": {
    "sex": {
      "type": "text"
    }
  }
}
  1. 查看映射
向 ES 服务器发 GET 请求 :
http://127.0.0.1:9200/索引名/_mapping
  1. 查看所有文档
向 ES 服务器发 GET 请求 :http://127.0.0.1:9200/索引名/_search

请求体内容:
{
 "query": {
 "match_all": {}
 }
}
  1. 分词(match)匹配查询
向 ES 服务器发 GET 请求 :
http://127.0.0.1:9200/索引名/_search
请求体内容:
{
 "query": {
	 "match": {
	 "name":"zs"
	 }
 }
}
  1. 精确(term)查询
向 ES 服务器发 GET 请求 :
http://127.0.0.1:9200/索引名/_search
请求体内容:

{
    "query": {
        "term": {
            "name": {
                "value": "zhangsan"
            }
        }
    }
}
  1. 组合查询(bool把各种其它查询通过must(必须 )、must_not(必须不)、should(应该)的方式进行组合)
向 ES 服务器发 GET 请求 :
http://127.0.0.1:9200/索引名/_search

请求体内容:
{
    "query": {
        "bool": {
            "must": [
                {
                    "match": {
                        "name": "zhangsan"
                    }
                }
            ],
            "must_not": [
                {
                    "match": {
                        "nickname": "lisi"
                    }
                }
            ]
        }
    }
}
  1. 范围查询
向 ES 服务器发 GET 请求 :
http://127.0.0.1:9200/索引名/_search
请求体内容:
{
    "query": {
        "range": {
            "age": {
                "gte": 30,
                "lte": 35
            }
        }
    }
}
  1. 模糊查询
向 ES 服务器发 GET 请求 :
http://127.0.0.1:9200/索引名/_search
请求体内容:
{
    "query": {
        "fuzzy": {
            "name": {
                "value": "zhangsan",
                "fuzziness": 2
            }
        }
    }
}
  1. 单个字段排序
向 ES 服务器发 GET 请求 :
http://127.0.0.1:9200/索引名/_search
请求体内容:
{
    "query": {
        "match": {
            "name": "zhangsan"
        }
    },
    "sort": [
        {
            "age": {
                "order": "desc"
            }
        }
    ]
}
  1. 多个字段排序
向 ES 服务器发 GET 请求 :
http://127.0.0.1:9200/索引名/_search
请求体内容:
{
    "query": {
        "match_all": {}
    },
    "sort": [
        {
            "age": {
                "order": "desc"
            }
        },
        {
            "_id": {
                "order": "desc"
            }
        }
    ]
}

http://www.kler.cn/a/441671.html

相关文章:

  • 方法建议ChatGPT提示词分享
  • UDP協議與代理IP介紹
  • 2025-1-21 Newstar CTF web week1 wp
  • Java虚拟机面试题:内存管理(中)
  • Python绘制数据地图-MovingPandas
  • TMC2208替代A4988
  • 软件集成测试内容和作用简析
  • LabVIEW热电偶传感器虚拟仿真实验系统
  • golang 判断一个点是否在一个多边形内
  • Linux应用开发————mysql数据库表
  • MySQL专题:事务隔离机制详解
  • 人工智能增强的音频和聊天协作服务
  • Pyside6 --Qt设计师--简单了解各个控件的作用之:Buttons
  • Git 安装全教程:从入门到上手
  • MySQL有哪些高可用方案?
  • vscode 设置和引用变量
  • CTF 攻防世界 Web: FlatScience write-up
  • java+springboot+mysql学业跟踪指导管理系统
  • PHP 应用 ImageMagick
  • 回型矩阵:JAVA
  • 如何通过递延型指标预测项目的长期成果?
  • 多音轨视频使用FFmpeg删除不要音轨方法
  • 性能参数对比
  • Windows server 服务器网络安全管理之防火墙出站规则设置
  • Next.js流量教程:如何使用 Next.js 构建 SEO 友好的博客
  • 【Unity基础】Unity中拖拽3D物体的过程分析和实现方法