elasticsearch基本操作
1|0基础操作
# 添加数据 # PUT 索引名/类型/文档id PUT a1/doc/1 { "name": "阿飞的小姨妈", "age": 18 } PUT a1/doc/2 { "name": "阿飞的二姨妈", "age": 16 } PUT a1/doc/3 { "name": "阿飞的老姨妈", "age":16 } # 获取文档中的一条数据 # GET 索引名/类型/文档id GET a1/doc/1 # 获取文档中的所有数据 GET a1/doc/_search # 删除一条 # DELETE 索引名/类型/文档id DELETE a1/doc/3 # 删除所有 DELETE a1/ # 更新一条数据 # POST 索引名/类型/文档id/_update POST a1/doc/1/_update { "doc":{ "age": 20 } } # 查询所有的索引 GET _cat/indices?v # head确认索引是否存在 HEAD a1 # 返回200,不存在返回404
2|0查询的两种方式
- query string - DSL结构化查询 # 查询年龄为18的 GET a1/doc/_search?q=age:18 GET a1/doc/_search { "query":{ "match":{ "age":18 } } }
3|0match系列查询
GET a1/doc/_search { "query":{ "match":{ "name":"张磊" } } } # 查询包含白和可爱的,查询的结果为包含一个字和两字的,只要在这三个字里面的任意一个有都会返回 GET a1/doc/_search { "query":{ "match":{ "tag":"白 可爱" } } }
4|0match_phrase短语查询
# 查询可爱,这个不会拆分,按整体查询 GET a1/doc/_search { "query":{ "match_phrase":{ "tag":"可爱" } } } # 特殊参数 slop ,表示间隔,比如 中国是世界,我们查询的时候输入中国世界,查询结果没有对应的返回数据。但是我们加上slop:1,表示跳过1个间隔去匹配 GET a1/doc/_search { "query":{ "match_phrase":{ title:{ "query":"中国世界", "slop": 1 } } } }
5|0match_all查询所有
GET a1/doc/_search { "query":{ "match_all":{} } }
6|0排序查询 sort
# 插入测试数据 PUT s22/doc/1 { "name":"张磊", "age":26, "desc": "大保健,shen不好", "tag": ["篮球","上午"], "both": "1990-11-12", "city":"河北" } PUT s22/doc/2 { "name":"罗新宇", "age":26, "desc": "小帅x,shen不好", "tag": ["针灸","爱推拿"], "both": "1988-12-12", "city":"山东" } PUT s22/doc/3 { "name":"苏守丽", "age":18, "desc": "大美妞,天生丽质难自弃", "tag": ["白","fu","美","可爱"], "both": "1999-08-15", "city":"山西" } PUT s22/doc/4 { "name":"崔雪飞", "age":18, "desc": "大美女,天生丽质难自弃", "tag": ["白","fu","美","乖巧"], "both": "1999-08-15", "city":"辽宁" } PUT s22/doc/5 { "name":"he明明", "age":25, "desc": "大美女,天生丽质难自弃", "tag": ["白","fu","美","乖巧"], "both": "1999-08-15", "city":"河北" } PUT s22/doc/6 { "name":"何青青", "age":28, "desc": "大美女,天生丽质难自弃", "tag": ["白","fu","美","乖巧"], "both": "1999-08-15", "city":"河北" } # 按年龄降序排序 sort排序 GET s22/doc/_search { "query": { "match_all": {} }, "sort": [ { "age": { "order": "desc" } } ] }
7|0分页查询 from和size
# 分页 from和size 从什么开始返回几条数据 GET s22/doc/_search { "query": { "match_all": {} }, "from": 0, "size": 2 }
8|0布尔查询
# must(and) # should(or) # must_not(not) # filter # must # 查询city是河北的 GET s22/doc/_search { "query": { "bool": { "must": [ { "match": { "city": "河北" } } ] } } } # 查询city是河北的,并且年龄是26的 GET s22/doc/_search { "query": { "bool": { "must": [ { "match": { "city": "河北" } }, { "match": { "age": 26 } } ] } } } # should 或者 # 查询city是河北,或者年龄是26的人 GET s22/doc/_search { "query": { "bool": { "should": [ { "match": { "city": "河北" } }, { "match": { "age": 26 } } ] } } } # must_not # 查询city不是河北,年龄又不是18的 GET s22/doc/_search { "query": { "bool": { "must_not": [ { "match": { "city": "河北" } }, { "match": { "age": "18" } } ] } } } # filter # 查询city是河北,年龄大于25的 GET s22/doc/_search { "query": { "bool": { "must": [ { "match": { "city": "河北" } } ], "filter": { "range": { "age": { "gt": 25 } } } } } }
9|0结果过滤 _source
# 查询city是河北,年龄大于25的city字段结果 GET s22/doc/_search { "query": { "bool": { "must": [ { "match": { "city": "河北" } } ], "filter": { "range": { "age": { "gt": 25 } } } } }, "_source": ["city"] }
10|0高亮查询
# 高亮显示丽质 # 默认 GET s22/doc/_search { "query": { "match": { "desc": "丽质" } }, "_source": ["desc"], "highlight": { "fields": { "desc": {} } } } # 自定义高亮显示 GET s22/doc/_search { "query": { "match": { "desc": "丽质" } }, "_source": ["desc"], "highlight": { "pre_tags": "<b style='color: green'>", # 前半段 "post_tags": "</b>", # 后半段 "fields": { "desc": {} } } }
11|0聚合函数
# 聚合函数 max avg min sum GET s22/doc/_search { "query": { "match_all": {} }, "aggs": { "my_avg": { "avg": { "field": "age" } } } }
12|0分组查询
# 分组 GET s22/doc/_search { "query": { "match_all": {} }, "size": 0, "aggs": { "avg_group": { "range": { "field": "age", "ranges": [ { "from": 15, "to": 20 }, { "from":20, "to":25 }, { "from":25, "to":30 } ] } } } }
__EOF__

本文作者:404 Not Found
本文链接:https://www.cnblogs.com/weiweivip666/p/14056753.html
关于博主:可能又在睡觉
版权声明:转载请注明出处
声援博主:如果看到我睡觉请喊我去学习
本文链接:https://www.cnblogs.com/weiweivip666/p/14056753.html
关于博主:可能又在睡觉
版权声明:转载请注明出处
声援博主:如果看到我睡觉请喊我去学习
-------------------------------------------
个性签名:代码过万,键盘敲烂!!!
如果觉得这篇文章对你有小小的帮助的话,记得在右下角点个“推荐”哦,博主在此感谢!
分类:
Elasticsearch
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· winform 绘制太阳,地球,月球 运作规律
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人