【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 分组 ...
随机推荐
- UML建模工具Astah Pro 8破解教程2022最新最详细版
(2022最新最详细版)UML建模工具Astah Pro 8破解教程 本文作者严正声明:拒绝盗版行为,打击盗版,痛恨吃白食的家伙,我一直都是坚定思想,有钱了一定要支持正版,所以此文档贡献,只为学习交流 ...
- 使用 Java 客户端通过 HTTPS 连接到 Easysearch
Easysearch 一直致力于提高易用性,这也是我们的核心宗旨,然而之前一直没有官方的 Java 客户端,也对用户使用造成了一些困扰,现在,我们正式发布了第一个 Java 客户端 Easysearc ...
- DoNet Core的启动过程-WebApplicationBuilder
1.前言 在NET6开始做ASP.NETCore的开发,我们首先要看的是启动过程,而WebApplication和WebApplicationBuilder 类是启动过程好不开的类,WebApplic ...
- AlexNet论文解读
前言 作为深度学习的开山之作AlexNet,确实给后来的研究者们很大的启发,使用神经网络来做具体的任务,如分类任务.回归(预测)任务等,尽管AlexNet在今天看来已经有很多神经网络超越了它,但是 ...
- MinIO 图片转文件的分界线RELEASE.2022-05-26T05-48-41Z
前言:本人想用MinIO存储文件,但是不想最新版本Mete文件,于是各种寻找于是终于找到办法了,原来是官方版本更新导致的.需要我们去寻找相应的版本. 1.官网下载网站 https://dl.min.i ...
- Ajax分析方法
Ajax 分析方法 以前面的微博为例,拖动刷新的内容由 Ajax 加载,而且页面的 URL 没有变化,那么应该到哪里去查看这些 Ajax 请求呢? 查看请求 需要借助浏览器的开发者工具,下面以 Chr ...
- Codeforces 1868C/1869E Travel Plan 题解 | 巧妙思路与 dp
为了更好的阅读体验,请点击这里 题目链接:Travel Plan 题目大意:\(n\) 个点的完全二叉树,每个点可以分配 \(1 \sim m\) 的点权,定义路径价值为路径中最大的点权,求所有路径的 ...
- Nuxt3 的生命周期和钩子函数(一)
title: Nuxt3 的生命周期和钩子函数(一) date: 2024/6/25 updated: 2024/6/25 author: cmdragon excerpt: 摘要:本文是关于Nuxt ...
- 12-CSS浮动
01 介绍 02 浮动规则 03 案例练习 3.1 缝隙的解决方案 <!DOCTYPE html> <html lang="en"> <head> ...
- opengrok源代码在线阅读平台搭建及字体修改
服务搭建 我所编写的docker-compose.yml如下,成功运行后将源码目录移动至 /data/opengrok/src ,重启容器使得opengrok快速更新索引 services: open ...