【ElasticSearch】02 查询操作
准备样本:
# PUT
http://127.0.0.1:9200/student/
推5个文档进索引:
# POST
http://localhost:9200/student/_doc/1001
{
"name":"zhangsan",
"nickname":"zhangsan",
"sex":"男",
"age":30
} # POST
http://localhost:9200/student/_doc/1002
{
"name":"lisi",
"nickname":"lisi",
"sex":"男",
"age":20
} # POST
http://localhost:9200/student/_doc/1003
{
"name":"wangwu",
"nickname":"wangwu",
"sex":"女",
"age":40
} # POST
http://localhost:9200/student/_doc/1004
{
"name":"zhaoliu",
"nickname":"zhaoliu",
"sex":"女",
"age":30
} # POST
http://localhost:9200/student/_doc/1005
{
"name":"qianqi",
"nickname":"qianqi",
"sex":"女",
"age":50
}
查询操作:
查询索引下的所有文档:
http://127.0.0.1:9200/student/_search
结果:
{
"took": 4,
"timed_out": false,
"_shards": {
"total": 1,
"successful": 1,
"skipped": 0,
"failed": 0
},
"hits": {
"total": {
"value": 3,
"relation": "eq"
},
"max_score": 1.0,
"hits": [
{
"_index": "student",
"_type": "_doc",
"_id": "ui1dlX4BrIYsUbCa81Wh",
"_score": 1.0,
"_source": {
"name": "Cloud9",
"gender": "male",
"age": 24
}
},
{
"_index": "student",
"_type": "_doc",
"_id": "1001",
"_score": 1.0,
"_source": {
"name": "Cloud9",
"gender": "male",
"age": 24
}
},
{
"_index": "student",
"_type": "_doc",
"_id": "1002",
"_score": 1.0,
"_source": {
"name": "Cloud9",
"gender": "male",
"age": 24
}
}
]
}
}
查询参数:
默认查询无条件,等同于这个条件:
{
"query": {
"match_all": {}
}
}
# "query":这里的 query 代表一个查询对象,里面可以有不同的查询属性
# "match_all":查询类型,例如:match_all(代表查询所有), match,term , range 等等
# {查询条件}:查询条件会根据类型的不同,写法也有差异
匹配K键"name"为”zhangsan“的文档
{
"query": {
"match": {
"name": "zhangsan"
}
}
}
匹配多个字段取值查询
{
"query": {
"multi_match": {
"query": "zhangsan",
"fields": [
"name",
"nickname"
]
}
}
}
精准查询
{
"query": {
"term": {
"name": {
"value": "zhangsan"
}
}
}
}
多字段精准查询
{
"query": {
"terms": {
"name": [
"zhangsan",
"lisi"
]
}
}
}
筛选指定字段展示:
{
"_source": [
"name",
"nickname"
],
"query": {
"terms": {
"nickname": [
"zhangsan"
]
}
}
}
包含,或者排除字段:
{
"_source": {
"excludes": [ "name", "nickname" ],
"includes": ["name","nickname"]
},
"query": {
"terms": {
"nickname": [
"zhangsan"
]
}
}
}
组合条件查询
must,必须匹配
must_not, 必须不匹配
should, 应该匹配
{
"query": {
"bool": {
"must": [
{
"match": {
"name": "zhangsan"
}
}
],
"must_not": [
{
"match": {
"age": "40"
}
}
],
"should": [
{
"match": {
"sex": "男"
}
}
]
}
}
}
范围查询
gt 大于
lt 小于
gte 大于等于
lte 小于等于
{
"query": {
"range": {
"age": {
"gte": 30,
"lte": 35
}
}
}
}
模糊查询
{
"query": {
"fuzzy": {
"title": {
"value": "zhangsan"
}
}
}
}
查询排序
{
"query": {
"match": {
"name": "zhangsan"
}
},
"sort": [
{ "age": { "order": "desc" } }
]
}
多个字段查询排序
{
"query": {
"match_all": {}
},
"sort": [
{ "age": { "order": "desc" } },
{ "_score": { "order": "desc" } }
]
}
{
"query": {
"match": {
"name": "zhangsan"
}
},
"highlight": {
"pre_tags": "<font color='red'>",
"post_tags": "</font>",
"fields": {
"name": {}
}
}
}
{
"query": {
"match_all": {}
},
"sort": [
{ "age": { "order": "desc" } }
],
"from": 0,
"size": 2
}
聚合查询
取最大值
# 获取age值最大的文档
{
"aggs": {
"max_age": {
"max": { "field": "age" }
}
},
"size": 0
}
取最小值
{
"aggs": {
"min_age": {
"min": { "field": "age" }
}
},
"size": 0
}
求和
{
"aggs": {
"sum_age": { "sum": { "field": "age" } }
},
"size": 0
}
求平均
{
"aggs": {
"avg_age": { "avg": { "field": "age" } }
},
"size": 0
}
{
"aggs": {
"distinct_age": { "cardinality": { "field": "age" } }
},
"size": 0
}
state属性,一次性返回所有聚合值,max,min,sum,avg,count
{
"aggs": {
"stats_age": {
"stats": {
"field": "age"
}
}
},
"size": 0
}
桶聚合操作
{
"aggs": {
"age_groupby": {
"terms": {
"field": "age"
}
}
},
"size": 0
}
【ElasticSearch】02 查询操作的更多相关文章
- ElasticSearch+Kibana 索引操作
ElasticSearch+Kibana 索引操作 一 前言 ElasticiSearch 简介 ElasticSearch是一个基于Lucene的搜索服务器.它提供了一个分布式多用户能力的全文搜索引 ...
- 基于百度地图SDK和Elasticsearch GEO查询的地理围栏分析系统(1)
本文描述了一个系统,功能是评价和抽象地理围栏(Geo-fencing),以及监控和分析核心地理围栏中业务的表现. 技术栈:Spring-JQuery-百度地图WEB SDK 存储:Hive-Elast ...
- elasticsearch(3) 数据操作-更新
一 更新整个文档 更新整个文档的方法和存放数据的方式是相同的,通过PUT 127.0.0.1/test/test/1 我们可以把test/test/1下的文档更新为新的文档 例: PUT 127.0 ...
- elasticsearch的索引操作和文档操作总结
参考文档:https://es.xiaoleilu.com/010_Intro/00_README.html 一.索引操作 1.查看当前节点的所有的index 查看当前节点的所有的index [roo ...
- ElasticSearch之CURL操作(有空再去整理)
https://www.cnblogs.com/jing1617/p/8060421.html ElasticSearch之CURL操作 CURL的操作 curl是利用URL语法在命令行方式下工 ...
- elasticsearch 关联查询
父-子关系文档 父-子关系文档 在实质上类似于 nested model :允许将一个对象实体和另外一个对象实体关联起来. 而这两种类型的主要区别是:在 nested objects 文档中,所有对象 ...
- ElasticSearch 常用查询语句
为了演示不同类型的 ElasticSearch 的查询,我们将使用书文档信息的集合(有以下字段:title(标题), authors(作者), summary(摘要), publish_date(发布 ...
- Elasticsearch基本CURD操作语法讲解
当我们的ES集群搭建完成以后,我怎么能看到集群中各个节点状态以及主节点和健康情况呢,如下讲解使用curl命令来与ES集群进行交互.分别有查询主节点情况.集群状态.以及创建索引查看索引.查看分片以及对E ...
- ElasticSearch DSL 查询
公号:码农充电站pro 主页:https://codeshellme.github.io DSL(Domain Specific Language)查询也叫做 Request Body 查询,它比 U ...
- MySQL 查询操作
目录 基本语法 查询常量 查看表达式 查询函数 查询指定字段 查询所有列 列别名 表别名 条件查询 条件查询运算符 逻辑查询运算符 排序与分页 排序查询(order by) 排序方式 limit 分组 ...
随机推荐
- 【Socket】解决TCP粘包问题
一.介绍 TCP一种面向连接的.可靠的.基于字节流的传输层协议. 三次握手: 客户端发送服务端连接请求,等待服务端的回复. 服务端收到请求,服务端回复客户端,可以建立连接,并等待. 客户端收到回复并发 ...
- B站login-极验逆向
声明 本文章中所有内容仅供学习交流,抓包内容.敏感网址.数据接口均已做脱敏处理,严禁用于商业用途和非法用途,否则由此产生的一切后果均与作者无关,若有侵权,请联系我立即删除! 目标网站 https:// ...
- vm ware 虚拟WIN10 时,chrome ,cent browser 显示异常,花屏
类似: 解决方法: 在VM WARE 显卡设置中关闭"加速3D图形". -
- jquery中$.get()提交和$.post()提交有区别吗?
相同点: 都是异步请求的方式来获取服务端的数据: 异同点: a.请求方式不同:$.get() 方法使用GET方法来进行异步请求的.$.post() 方法使用POST方法来进行异步请求的. b.参数传递 ...
- 🌟 简单理解 React 的 createContext 和 Provider 🚀
在 React 应用中,我们经常需要在组件之间共享状态和数据.而 React 的 createContext 和 Provider 就是为了解决这个问题而诞生的. createContext:创建自定 ...
- VMware 虚拟机下载
VMware破解版下载地址: https://www.aliyundrive.com/s/CUr4eaMgxGa 提取码:e0c8 激活码: ZF3R0-FHED2-M80TY-8QYGC-NPKYF ...
- Linux实时查看Java接口数据
1.Linux实时查看Java接口数据的方法 在Linux系统中实时查看Java接口数据通常涉及几个步骤: (1)编写Java应用程序:首先,我们需要有一个Java应用程序,它暴露了一个或多个HTTP ...
- Android 8.0 开机时间优化
Android 8.0 开机时间优化 背景 在嵌入式行业中,有些搭载 了Android系统的设备由于 开机时间 过长而导致无法被接受. 介绍 启动时间是系统性能的重要组成部分,因为用户必须等待启动完成 ...
- mtr和traceroute的区别,以及为什么traceroute不显示路径mtr却可以显示路径
最近工作主要都是网络策略的开通和网络测试,在测试的过程当中发现当网络不通时,用traceroute来看路由路径的时候总是无法显示出来,于是就换了个工具-mtr,发现mtr可以正常显示出路由路径,帮助我 ...
- Java开发框架演变过程
JavaWeb开发简史 Java框架创始人 Java框架说明 Spring: 把应用程序中的bean统一交给Spring进行管理控制,简化了我们的代码操作,和降低了代码的耦合度,Spring框架基本上 ...