【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 分组 ...
随机推荐
- core dump 路径定义以及监控
Core Dump 是什么? Core Dump 是指进程异常退出时,操作系统将进程的内存状态保存到文件中,这个文件就是 Core Dump 文件,中文一般翻译为"核心转储",哈, ...
- C#字符串截取分割方法
字符串操作:分割 Split.连接数组 Join.拼接 Format.截取 Substring.替换 Replace.左填充 PadLeft.右填充 PadRight.删除 Remove 1 //分割 ...
- Jmeter进行HTTPS接口压测及SSL证书验证
一.前言 使用JMeter压测HTTPS接口比较简单,只需要预先处理SSL证书认证,后面就是压测HTTP接口的通用步骤. HTTPS连接证书来验证浏览器和WEB服务器之间的连接.通过HTTP连接时,服 ...
- js金额格式化
function fmoney(s, n) //s:传入的float数字 ,n:希望返回小数点几位 { n = n > 0 && n <= 20 ? n : 2; s = ...
- 算法金 | 一个强大的算法模型,GP !!
大侠幸会,在下全网同名「算法金」 0 基础转 AI 上岸,多个算法赛 Top 「日更万日,让更多人享受智能乐趣」 高斯过程算法是一种强大的非参数机器学习方法,广泛应用于回归.分类和优化等任务中.其核心 ...
- 在线SQL格式化工具推荐
在线SQL格式化工具,一键美化.整理您的SQL代码,支持多种数据库语法格式化.有效提升代码可读性,方便团队协作与快速定位问题,是开发人员必备的SQL编程助手,让复杂查询更清晰,更易于维护. 在线SQL ...
- 社会工程学——进行IP追踪
如果目标对象有一个公开的邮箱,可以往这个邮箱地址发试探性的Email,然后看看该邮件是否有[回信],从而了解对象是否在线.(注:这招是社会工程学的基本伎俩) 说一个稍微高级点的邮件技巧--[不依赖回信 ...
- python安装pywifi
1.Windows安装: 在Dos窗口中输入以下命令: pip install pywifi 如果找不到pip命令,那么需要将Python安装文件夹下Scripts文件夹的绝对路径加入环境变量中. 2 ...
- C++判断当前程序是否运行在Windows展台(Kiosk)模式下
Windows有一个展台(Kiosk)模式.展台模式可以使Windows作为数字标牌进行使用.具体请参考Windows 展台 配置完展台模式,重启设备后,Windows会以全屏的方式运行展台应用,无法 ...
- 02-HTML知识点
01 元素的介绍 02 元素的属性 03 元素的嵌套关系 04 HTML结构分析 4.1 文档声明[这个不叫元素] 4.2 html元素 4.3 head元素 主要用来写文档的配置信息 05 HTML ...