ES API基本操作
创建索引,user为索引名称
PUT http://192.168.0.110:9200/user
查询索引基本信息
GET http://192.168.0.110:9200/user
查询所有索引
GET http://192.168.0.110:9200/_cat/indices?
删除索引
DELETE http://192.168.0.110:9200/shopping
索引创建文档数据
POST http://192.168.0.110:9200/shopping/_doc { "title": "小米手机", "category": "小米", "images": "http://www.xiaomi.com", "price": 9999.00 }
主键查询
GET http://192.168.0.110:9200/shopping/_doc/tHP1FoMBv-1e6_zbJ75F
索引全量查询
GET http://192.168.0.110:9200/shopping/_search { "query": { "match_all": { } } }
全量修改数据
POST http://192.168.0.110:9200/shopping/_doc/tHP1FoMBv-1e6_zbJ75F { "title": "华为手机", "category": "华为", "images": "http://www.华为.com", "price": 4999.00 }
局部修改数据
POST http://192.168.0.110:9200/shopping/_update/tHP1FoMBv-1e6_zbJ75F { "doc": { "title": "华为手机" } }
删除主键
DELETE http://192.168.0.110:9200/shopping/_doc/s3PrFoMBv-1e6_zbHb6Z
条件查询
GET http://192.168.0.110:9200/shopping/_search 或者头部添加?q=key:value,当value为中文会有问题,所以建议使用第一种方法 { "query": { "match": { "category": "小米" } } }
分页查询
from 从第几条开始查
size 返回几条数据
GET http://192.168.0.110:9200/shopping/_search { "query": { "match": { "category": "小米" } }, "from": 2, //从0开始 "size": 3 }
条件+分页+过滤+排序
desc 降序
asc 升序
GET http://192.168.0.110:9200/shopping/_search { "query": { "match": { "category": "小米" //匹配小米 } }, "from": 2, "size": 7, "_source": ["title", "price"], //对匹配结果进行二次过滤,只显示列表中的数据 "sort": { "price": { //排序的key "order": "asc" //升序 } } }
多条件查询-同时成立
GET http://192.168.0.110:9200/shopping/_search { "query": { "bool": { "must": [ //同时成立 { "match": { "category": "小米" } }, { "match": { "price": 1999.00 } } ] } } }
多条件查询+或+范围查询
GET http://192.168.0.110:9200/shopping/_search { "query": { "bool": { "should": [ //或 { "match": { "category": "小米" } }, { "match": { "category": "华为" } } ], "filter": { //过滤,固定写法 "range": { //范围 "price": { "gt": 5000 //大于5000 } } } } } }
完全匹配查询
GET http://192.168.0.110:9200/shopping/_search { "query": { "match_phrase": { //完全匹配,match 为可以分词查询,此时小华可以同时搜索出小米和华为,如果完全匹配,就用match_phrase "category": "小米" } } }
高亮显示查询
GET http://192.168.0.110:9200/shopping/_search { "query": { "match_phrase": { "category": "小米" } }, "highlight": { "fields": { "category": {} } } }
聚合查询
GET http://192.168.0.110:9200/shopping/_search //{ // "aggs": { // "price_groups": { //随便起个名字 // "terms": { //固定格式,统计 // "field": "price" // 统计关键词 // } // } // }, // "size": 0 // 不显示原始数据 //} { "aggs": { //表示聚合操作,固定写法 "price_avg": { //随便起个名字 "avg": { //固定格式,平均值 "field": "price" // 统计关键词 } } }, "size": 0 // 不显示原始数据,只显示统计结果 }
映射创建索引
PUT http://192.168.0.110:9200/user/_mapping { "properties": { "name": { "type": "text", //可以分词查询 "index": true }, "sex": { "type": "keyword", //不可以分词查询,完全匹配查询 "index": true }, "tel": { "type": "keyword", "index": false // 不能按索引查询 } } }
统计一天进了多少条数据
topicanalysismsgl/_count { "query": { "range": { "createTime": { "from": "2022-10-07T01:00:00+08:00", "to": "2022-10-07T18:40:45+08:00" } } } }
按字段排序
{ "sort": { "createTime": { "order": "desc" } } }
统计某个时间段数据量
index/_count { "query": { "range": { "createTime": { "from": "2022-04-01T00:00:00+08:00", "to": "2022-05-01T00:00:00+08:00" } } } }
关键字匹配加排序
{ "query": { "match": { "teamId": 10 } }, "sort": { "createTime": { "order": "desc" } } }
关键字排序
{ "sort": { "createTime": { "order": "desc" } } }
索引新增字段
index/_mapping { "properties": { "字段": { "type": "integer" } } }
列出所有索引列表
curl -u elastic:pwd localhost:9200/_cat/indices
删除数据
post index/_delete_by_query { "query": { "range": { "createTime": { "from": "2023-04-07T00:00:00+08:00", "to": "2023-04-08T00:00:00+08:00" } } } }
越学越感到自己的无知
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通