意气风发啊骑上我快乐的小摩托良心公众号啊!我上墙了你开始了嚯嚯嚯嚯嚯哈哈哈哈哈皮皮虾我们走可乐在厨房 红牛在冰箱6666666

看弹幕,点关注

"

Do your little bit of good where you are; it's those little bits of good put together that overwhelm the world.

—— Desmond Tutu

在你所到之处行小善,因为正是这些小善组成的大善让世界温暖。

"

常用 es 查询盘点

熟悉了关系型数据库的结构概念以及查询,再去使用属于非关系型数据库的 Elasticsearch 时,简直是噩梦。第一道难关便是概念上的转换。索引?类型?文档?what?

下面是概念上的对应,大家可以类比了解

Relational DB -> Databases -> Tables -> Rows      -> Columns
Elasticsearch -> Indices   -> Types  -> Documents -> Fields

熟悉了各种概念后,下一道难关便是增删改查,而最最常用的是查询!如同 SQL 一样,它有一套自己的查询语句 - DSL 查询。所以,下面为大家总结一下常用的查询,然后你就可以像翻字典一样,用时瞄两眼了 ~ 嘿嘿,真他娘的是个天才 ...

1.基础的不能再基础查询

查询所有的索引及容量:

GET _cat/indices

GET 代表请求方式; _cat/indices 代表查询部分。访问的 url 写全为:

localhost:9200/_cat/indices

查询某一索引的映射结构:

GET 索引名/_mapping

查询所有的相同前缀索引:(如以 yan 开头)

GET yan*/_search

查询所有索引模板:

GET _template

查询具体索引模板:

GET _template/模板名

查询集群健康状态:

GET _cluster/health

查询所有节点:

GET _cat/nodes

查询索引及分片的分布:

GET _cat/shards

查询所有插件:

GET _cat/plugins

2.有点难度的查询

查询某个索引的全部数据:

GET /index/type/_search
{"query": {"match_all": {}}
}

当然你也可以直接写 URL 查询(默认返回 10 条文档):

 localhost:9200/索引名/_search?pretty

pretty参数是为了浏览器显示的美观一些。

根据某一字段精确查询:

GET /index/type/_search
{"query": {"term": { "字段名" : "值" }}
}

根据某一字段模糊匹配:

GET /index/type/_search
{"query": {"match": { "字段名" : "值" }}
}

根据某一字段值进行范围查找:

GET /index/type/_search
{"query": {"range": {# 字段名: 条件"age":{ "gte" : 15 , "lte" : 25 }}}
}

gte 是大于等于;lte 是小于等于

根据条件进行过滤查询:

GET /index/type/_search
{"query": {"bool": {"filter": {"term":{"字段":"值"}}}}
}

多条件"或"关系:

GET /index/type/_search
{"query": {"bool": {"should": [{"term": {"字段": "值"}}, {"match": {"字段": "值"}}]}}
}

多条件"与"关系:

GET /index/type/_search
{"query": {"bool": {"must" : [{"match" : {"name" : "Ethanyan"}},{"range":{"age":{"from" : 18 , "to" : 26} }}]}}
}

严格匹配:

GET /index/type/_search
{"query": {"bool": {"must" : {"range" : {"age" : { "from" : 18, "to" : 26 }}}}}
}

严格不匹配:

GET /index/type/_search
{"query": {"bool": {"must_not" : {"term" : {"name" : "Ethanyan"}}}}
}

复合查询:

GET /index/type/_search
{"query": {"bool": {"should": [{"match": {"age": 18}},  {"match": {"age": 26}}],"filter": { "match": {  "name": "Ethanyan" }}}}
}

3.注意事项

1.索引、模板之类的名称不能出现字母大写。

2.在查询时,要写 DSL 语句,所以需要携带请求体,那么为什么还是 get 请求?

答:原则上 get 请求不能携带请求体,但凡事有例外,试验后确实可以,我也不晓得为什么。下方为官方文档,全为 get 请求:

全栈技术文章精选

redis操作命令总结

MySQL相关操作

SQL查询语句

前端中那些让你头疼的英文单词

Flask框架重点知识总结回顾

团队开发注意事项

浅谈密码加密

Django框架中的英文单词

Django中数据库的相关操作

DRF框架中的英文单词

DRF框架

Django相关知识点回顾

python技术面试题-腾讯

Elasticsearch查询时还在百度DSL语句吗?你可能需要这份总结相关推荐

  1. Elasticsearch 查询时 判断不为null或不为空字符串

    最近遇到了查询es中某个字段为""或null,网上查了好多都是  去除null的查询 下面是我查询时解决方法, BoolQueryBuilder boolQueryBuilder ...

  2. DSL 语句使用入门

    Query DSL 是一个 Java 开源框架,用于构建 类型安全 的 SQL 查询语句.采用 API 代替传统的拼接字符串 来构造查询语句. 目前 Querydsl 支持的平台包括 JPA,JDO, ...

  3. 微服务03 分布式搜索引擎 elasticsearch ELK kibana RestAPI 索引库 DSL查询 RestClient 黑马旅游

    分布式搜索引擎01 -- elasticsearch基础 0.学习目标 1.初识elasticsearch 1.1.了解ES 1.1.1.elasticsearch的作用 elasticsearch是 ...

  4. Elasticsearch安装IK分词器,kibana安装是基本使用,DSL语句入门

    文章目录 1. 安装IK分词器 2. Kibana安装和使用 2.1 ELK概述 2.2 Kibana下载 2.3 DSL语句 1. 安装IK分词器 ElasticSearch 默认采用的分词器, 是 ...

  5. es的自动补全查询——DSL语句java代码实现

    1.DSL语句 elasticsearch提供了Completion Suggester查询来实现自动补全功能.这个查询会匹配以用户输入内容开头的词条并返回. 为了提高补全查询的效率,对于文档中字段的 ...

  6. mysql索引三个字段查询两个字段_mysql中关于关联索引的问题——对a,b,c三个字段建立联合索引,那么查询时使用其中的2个作为查询条件,是否还会走索引?...

    情况描述:在MySQL的user表中,对a,b,c三个字段建立联合索引,那么查询时使用其中的2个作为查询条件,是否还会走索引? 根据查询字段的位置不同来决定,如查询a,     a,b    a,b, ...

  7. mysql 关联索引_mysql中关于关联索引的问题——对a,b,c三个字段建立联合索引,那么查询时使用其中的2个作为查询条件,是否还会走索引?...

    情况描述:在MySQL的user表中,对a,b,c三个字段建立联合索引,那么查询时使用其中的2个作为查询条件,是否还会走索引? 根据查询字段的位置不同来决定,如查询a,     a,b    a,b, ...

  8. mysql索引三个字段查询两个字段_mysql中关于关联索引的问题——对a,b,c三个字段建立联合索引,那么查询时使用其中的2个作为查询条件,是否还会走索引?......

    情况描述:在MySQL的user表中,对a,b,c三个字段建立联合索引,那么查询时使用其中的2个作为查询条件,是否还会走索引? 根据查询字段的位置不同来决定,如查询a,     a,b    a,b, ...

  9. mysql中关于关联索引的问题——对a,b,c三个字段建立联合索引,那么查询时使用其中的2个作为查询条件,是否还会走索引?...

    情况描述:在MySQL的user表中,对a,b,c三个字段建立联合索引,那么查询时使用其中的2个作为查询条件,是否还会走索引? 根据查询字段的位置不同来决定,如查询a,     a,b    a,b, ...

最新文章

  1. Apache发布Groovy 2.5正式版及3.0预览版
  2. slf4j 桥接与被桥接_合成和桥接方法
  3. 【CodeForces - 340D】Bubble Sort Graph (思维,nlogn最长上升子序列类问题)
  4. google python的风格规范
  5. 我对计算机感兴趣作文300字,我想对电脑游戏说作文300字
  6. 饥荒机器人怎么用避雷针充电_饥荒避雷针有什么用
  7. mysql varchar 长度设置_Mysql中varchar长度设置方法
  8. /usr/include/gnu/stubs.h:7:27: 致命错误:gnu/stubs-32.h:没有那个文件或目录
  9. 微信公众平台的发展历史
  10. Spring AOP配置 之 @Aspect
  11. 用esp8266开发板制作WiFi Killer
  12. 电影影视网站搭建教程
  13. 2019 SD卡、U盘无法格式化怎么办的解决方法
  14. ui界面设计基本原则
  15. So easy ! 两句口号轻松搞懂Docker
  16. 面向对象的封装,继承,多态。
  17. 豆瓣电影页面html代码,Vue.js 仿豆瓣电影DEMO 学习笔记一
  18. 2021年危险化学品经营单位安全管理人员复审考试及危险化学品经营单位安全管理人员模拟考试
  19. SpringBoot自动装配原理浅析
  20. 笛卡尔坐标系与右手定则

热门文章

  1. 字节跳动半夜给员工发钱,全员沸腾了
  2. 完美解决移动端video视频层级问题
  3. 小白学编程,需要掌握哪些基础?学习清单送给你
  4. 学习编程与学习编程语言不同
  5. 加拿大要把AI带上飞机,他们都准备干什么?
  6. Linux 10个主流发行版本
  7. 转一篇关于安装vue脚手架 执行到安装demo:setup e2e tests with nightwacth 要不要选择NO的问题的解释
  8. uni-app 手机端定位问题
  9. 树莓派网线直连海康威视摄像头
  10. 制作 macOS High Sierra U盘