es查询语法笔记之常使用的增删改查~

这篇具有很好参考价值的文章主要介绍了es查询语法笔记之常使用的增删改查~。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

最近测的项目数据流是先缓存到MQ,可通过es查询,以下是es查询语法做的笔记。
首先es中的search主要分为URI Search和 body Search

es查询语法笔记之常使用的增删改查~

一、查询

1. URI Search

URI Search 查询条件跟在_search?后面,
例如:GET 索引名称/_search?1=1
GET 索引名称 就像是select * from emp
注意这个索引名称可以是一个,也可以是多个

GET /_search
GET data_1/_search
GET data_1,data_2/_search
GET data_*/_search

/_search? 就像是where
1=1 就是查询的条件

URI Search有一些关键字 :

1.1 q 查询

GET data_1/_search?q=name:Judy

意为查询name为Judy的字段

1.2 q+df 指定字段查询

GET data_1/_search?q=Judy&df=name

意为在name字段里找一个值为Judy的

1.3 sort 排序

GET data_1/_search?q=Judy&df=name&sort=age:asc

意为以age正序排列

1. 4 size 展示的条数

GET data_1/_search?q=Judy&df=name&sort=age:asc&size=2

意味展示前2条数据,用es查询时默认是size=10。 如果加上from就是从第几页开始 ,默认是0

GET data_1/_search?q=Judy&df=name&sort=age:asc&size=2&from=6

1.5 timeout 超时时间

GET data_1/_search?q=Judy&df=name&sort=age:asc&size=2&timeout=1s

意为指定超时时间1s,默认是没有超时时间的

2. body Search

有时候参数比较复杂的,就不方便都写在url里,可以直接放在body里,下面是一些查询的写法笔记
query 查询的基本格式

GET data_1/_search
{
    "query":{
        "查询类型":{
            "查询条件":"查询条件值"
        }
    }
}

2.1 match_all 查询全部

GET data_1/_search
{
	"query": {
		"match_all": {}
	}
}

2.2 match 指定查询条件

GET data_1/_search
{
	"query": {
		"match": {
		  "age":"28"
		}
	}
}

2.3 term关键字精确查询

term和 match一样的用法,查询结果我看也一样(要是有老师知道二者区别请告知一下呀)

GET data_1/_search
{
	"query": {
		"term": {
		  "age":"28"
		}
	}
}

也可以写成

GET data_1/_search
{
	"query": {
		"term": {
		  "age":{
		    "value": "28"
		  }
		}
	}
}

需要注意的是trem还有一个兄弟terms 多关键字精确查询

2.4 terms多关键字精确查询

GET data_1/_search
{
	"query": {
		"terms": {
		  "age": ["18","28"]
		}
	}
}

2.5 组合查询query filter

GET data_1/_search
{
  "query": {
    "bool": {
      "filter": [
        {
          "term": {
            "age": "20"
          }
        },
        {
          "term": {
            "class": "1"
          }
        }
      ]
    }
  }
}

以下是开发帮我写的一段查询一定时间范围内的数据,关键字我改了下,可以参考写法

GET data_1/_search
{
  "size": 10,
  "query": {
		"bool": {
			"filter": [{
				"range": {
					"statDate": {
						"from": 1668355200000,
						"to": 1668441600000,
						"include_lower": true,
						"include_upper": true,
						"boost": 1.0
					}
				}
			}, {
				"term": {
					"age": {
						"value": 3,
						"boost": 1.0
					}
				}
			}],
			"adjust_pure_negative": true,
			"boost": 1.0
		}
	}
}

二、修改和插入

1.修改

修改直接用put 路径/id,成功结果会提示updated,还会提示是第几个版本。需要注意{}里应该是所有的参数(包括不修改的)
如:

PUT /data_1/_doc/wrmRhIQBypls-PGcmibv
{
          "age" : "21"
        }

es查询语法笔记之常使用的增删改查~

2.插入

和修改一样,put 路径/id
结果会提示这是created

PUT /date_1/_doc/wrmRhIQBypls-PGcmib7
{
          "age" : "21"

        }

es查询语法笔记之常使用的增删改查~

三、删除

1.有条件的删除

POST  /data_1/_delete_by_query
{
  "query": {
    "term": {
      "age": {
        "value": "21"
      }  
    }
  }
}

意味指定删除data_1里age为21的数据

POST  /data_1/_delete_by_query
{
  "query":{
    "match":{
      "_id": "frakg4QBypls-PGc4jpw"
    }
  }
}

意味指定删除data_1里_id为frakg4QBypls-PGc4jpw的数据
es查询语法笔记之常使用的增删改查~

整理就这么多啦,这些语句基本测试够用了。如果后面有使用频率比较高的会更新上来~

#2023-3-31更新

最近有个项目又是推MQ消费存ES,测试时把这篇笔记拿出来看,发现里面用的查询语句已经不能满足我啦。比如我想查询分组的数据(类似sql里的group by),或者是查询具体的一小部分数据详细的是什么样子的(类似不等于大部分值),在这里记录一下。

当我想查询机构1和机构2…数据对应的数据总计是多少,可以用

es的聚合查询(aggs)

具体用法是:

GET /data_1/_search
{
    "size" : 0,
    "aggs" : { 
        "聚合名字(随便取)" : { 
            "terms" : { 
              "参数的名字" : "对应的值"
            }
        }
    }
}

然后

es也是支持sql的

POST /_index_name/sql?format=txt
{
  "query":"select * from index_name where id != 1"
}

执行sql就能查出来对应的数据。就是排版不太好看呀。不知有没有老师知道有没有支持es的查询工具可用?
es查询语法笔记之常使用的增删改查~

如果后面有使用频率比较高的会更新上来~文章来源地址https://www.toymoban.com/news/detail-493982.html

到了这里,关于es查询语法笔记之常使用的增删改查~的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • springboot整合easy-es实现数据的增删改查

    背景 目前公司的一个老项目,查询贼慢,需要想办法提升一下速度,于是就想到了ES,现在尝试一下将ES整合到项目中来提升检索效率。 ES是基于倒排索引实现的,倒排索引中一个表相当于一个索引,表中的每条记录都是一个文档(JSON数据),系统会先对字段数据进行分词,

    2024年01月20日
    浏览(36)
  • JDBC的增删改-结果集的元数据-Class反射-JDBC查询封装

    ​1、JDBC的六大步骤 (导入jar包, 加载驱动类,获取连接对象, 获取sql执行器、执行sql与并返回结果, 关闭数据库连接) 2、​封装了一个DBUtil 类, 通过读取属性文件的方式获取 基础连接信息。 3、​批量添加: 一次性可执行多个添加记录 ,将多个sql语句在当前这次连接

    2024年02月13日
    浏览(34)
  • ES kibana常用语法---增删改查

    ES(Elasticsearch)是一种基于Lucene的搜索引擎,支持各种查询语法,以下是常用的ES查询语法: 查询空字符串 因为空字符串在ES中也是一种数据类型,所以使用 match 或 filter 直接空串不能查出来,因此使用 wildcard 进行模糊匹配查询, \\\"*\\\" 可以查询出 非null、非空串和存在该字段

    2024年03月24日
    浏览(31)
  • 【MySQL】表的增删改查——MySQL基本查询、数据库表的创建、表的读取、表的更新、表的删除

         CURD是一个数据库技术中的缩写词,它代表Create(创建),Retrieve(读取),Update(更新),Delete(删除)操作。 这四个基本操作是数据库管理的基础,用于处理数据的基本原子操作。      在MySQL中,Create操作是十分重要的,它帮助用于创建数据库对象,如数据

    2024年03月18日
    浏览(44)
  • 使用Django框架完成用户的增删改查操作

    使用Django框架完成用户的增删改查操作,需要按照以下步骤进行: 创建Django项目: 在命令行中进入项目目录,执行以下命令创建一个新的Django项目: 其中projectname是你的项目名称。 创建应用: 在项目目录下执行以下命令创建一个新的应用: 其中appname是你的应用名称。 配置

    2024年01月18日
    浏览(27)
  • MySQL 基本概念 基础用法 增删改查(特殊查询)语法 详细篇

    今天来分享一期MySQL的基本用法(增删改查 对库 对表 对值) 目录 MySQL的基础概念  SQL 语言的主要分类 DDL(数据定义语言) DML(数据操控语言) DQL(数据库查询语言) DCL(数据库控制语言) 基础语法 增 库的操作 表操作 列操作 值操作 删 删除库 删除表 删除值 改 修改表名 更新数

    2024年03月16日
    浏览(32)
  • ElasticSearch篇——Restful风格详解以及常见的命令,涵盖_cat命令查看ES默认数据、索引和文档的增删改查以及复杂搜索,超详细、超全面、超细节!

    一种软件架构风格,而不是标准,只是提供了一组设计原则和约束条件。它主要是用于客户端和服务器交互类的软件。基于这个风格设计的软件可以更加简洁,更有层次,更易于实现缓存等机制。 一、基本Rest命令说明 1、命令 对应的就是head可视化界面的下面的信息(换句话

    2024年01月16日
    浏览(29)
  • 前端在项目中使用mockjs模拟数据的增删改查

    背景 在项目开发时,会存在前端界面已经画好了但是后端接口还在开发的情况,此时前端可以先根据接口文档明确自己需要的字段,然后使用mock模拟后端接口进行调试 安装 使用 1. 创建vue项目之后,新建一个mock文件夹,定义一个index.js文件 2. 引入mock依赖,使用setup方法设置

    2023年04月08日
    浏览(37)
  • Android使用SQLite数据库实现基本的增删改查

    目录 一、创建activity_main和MainActivity界面 二、实现查询/删除功能创建activity_delete和DeleteActivity 三、实现添加功能创建activity_add和AddActivity  四、实现更新功能创建activity_update和UpdateActivity 五、创建user_data类、userInfo类和增加权限 总结 activity_main如图:  MainActivity如下 layout界面

    2024年02月08日
    浏览(37)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包