【ES】基础操作
1 前言
记录一下平时常用的 ES 的一些基础操作。
2 基本的系统操作
GET /_cat/health?v 查看当前的集群状态信息
GET /_cat/nodes?v 查看集群节点信息
GET /_cat/indices?v 查看所有索引及数据大小
3 索引操作
PUT /mytest 创建一个mytest名字的索引 GET /mytest 查看索引的定义信息 GET /mytest/_settings GET /mytest/_mapping HEAD mytest 判断索引是否存在404 不存在 , 200 存在 GET /_stats 查看所有的索引状态 GET /mytest/_search 查询mytest索引,默认返回一条数据 GET /mytest/_doc/48902 知道具体的id可以这样查 GET /mytest/_doc/50656/_termvectors?fields=productname 查看分词结果 POST /mytest/_open 打开索引 POST /mytest/_close 关闭索引 DELETE /mytest 删除索引 PUT /mytest/_mapping 更新索引映射 { "properties": { "name": { ==字段名 "type": "text", ==表示可以分词 "index": true ==表示可以条件查询 }, "age": { "type": "keyword", ==表示不分词查找 "index": false ==表示不能条件查询 }, "tel": { "type": "keyword", "index": true } } }
4 文档操作
注意查询条件中有中文的 es会分词 形成一个个关键词去匹配数据,不想分词话 match改为match_phrase即可
POST /mytest/_doc 创建文档 _id字段也就是该文档的唯一标识。这个id也是可以自定义的 POST /mytest/_doc/1001 创建文档 1001为自主产生id方式 GET /mytest/_doc/1001 id查看文档 GET /mytest/_search 查看所有文档 GET /mytest/_search 查询所有文档 { "query": { "match_all": {} } } GET /mytest/_search 查询文档中name=11的 如果是文字的话会分词匹配 { "query": { "match": { "name": "11" } }, "highlight": { name字段会高亮 "fields": {"name": {}} } } GET /mytest/_search 分页查询 from起始行0开始 size页大小 { "query": { "match_all": { } }, "from": 0, "size": 2 } GET /mytest/_search 查询 _source指定返回的列 sort进行排序 { "query": { "match": { "_id": "EZLM2IIBWjDSANi_ebIR" } }, "_source": ["title"], "sort": [ { "age": { "order": "desc" } } ] } GET /mytest/_search 查询 name分词我是大娃&&price=899 must改成should 两者就是or的关系 { "query": { "bool": { "must/should": [ { "match": { "name": "我是大娃" } }, { "match": { "price": "899" } } ], "filter": { ====filter范围查询 "range": { "price": { "gte": 10, "lte": 2000 } } } } } } GET /mytest/_search 按price分组 { "aggs": { //聚合操作 "price_group": { //名称 随意起名字 "terms": { // 分组 "field": "price" //分组字段 } } }, "size": 0 //默认会查出原始数据,加上这个表示不要原始数据 } GET /mytest/_search?q=name:大娃 查看name中包含大娃的 PUT /mytest/_doc/1001 全量更新 POST /mytest/_doc/1001 修改文档 部分更新 POST /mytest/_update/1001 修改某一条给定数据的局部信息 { "doc": { "age": 132 } } DELETE /mytest/_doc/1001 删除文档
5 小结
一些日常的基础 ES 操作,平时用的一些,有记录不对的地方欢迎指正哈。