## 节点
GET _cat/nodes
## 查索引
GET _cat/indices
## 批量插入
POST customer/external/_bulk
{"index":{"_id":1}}
{"id":1,"name":"张三","age":10,"sex":"男","email":"zhangsan@gmail.com","address":"湖南省长沙市岳麓区芯城科技园二期8栋"}
{"index":{"_id":2}}
{"id":2,"name":"李四","age":20,"sex":"男","email":"lisi@gmail.com","address":"湖南省长沙市岳麓区芯城科技园二期9栋"}
{"index":{"_id":3}}
{"id":3,"name":"王五","age":30,"sex":"女","email":"wangwu@gmail.com","address":"湖南省长沙市岳麓区芯城科技园二期10栋"}
{"index":{"_id":4}}
{"id":4,"name":"张小雷","age":18,"sex":"女","email":"zhangxiaolei@gmail.com","address":"湖南省长沙市岳麓区芯城科技园二期10栋"}
{"index":{"_id":5}}
{"id":5,"name":"文小刀","age":22,"sex":"男","email":"wenxiaodao@gmail.com","address":"湖南省长沙市岳麓区芯城科技园二期10栋"}
{"index":{"_id":6}}
{"id":6,"name":"张小雪","age":16,"sex":"女","email":"zhangxiaoxue@gmail.com","address":"湖南省长沙市岳麓区芯城科技园二期10栋"}
{"index":{"_id":7}}
{"id":7,"name":"王小二","age":26,"sex":"男","email":"wangxiaoer@gmail.com","address":"湖南省长沙市岳麓区芯城科技园一期10栋"}
{"index":{"_id":8}}
{"id":8,"name":"刘溜","age":28,"sex":"男","email":"liuliu@gmail.com","address":"湖南省长沙市岳麓区芯城科技园一期14栋"}
{"index":{"_id":9}}
{"id":9,"name":"赵四","age":48,"sex":"男","email":"zhaosi@gmail.com","address":"湖南省长沙市岳麓区中电软件园总部大楼"}
## 单个更新
POST tvs/_update/7
{"doc":{"sold_date":"2021-10-11"}}
## 所有
GET customer/_search
{
"query": {
"match_all": {}
}
}
-- 分词
GET customer/_analyze
{
"field": "name",
"text": ["李四"]
}
-- 子聚合
GET customer/_search
{
"aggs": {
"aggs_sex": {
"terms": {
"field": "sex.keyword",
"size": 10
},
"aggs": {
"aggs_avg_age": {
"stats": {
"field": "age"
}
}
}
}
},
"size": 0
}
-- cardinality 去重统计
GET customer/_search
{
"size": 0,
"aggs": {
"aggs_age": {
"cardinality": {
"field": "age"
}
}
}
}
-- 求和
GET customer/_search
{
"size": 0,
"aggs": {
"aggs_age_sum": {
"sum": {
"field": "age"
}
}
}
}
-- top-hits:按性别分组,分别求两条最大记录
GET customer/_search
{
"size": 0,
"aggs": {
"aggs_sex": {
"terms": {
"field": "sex.keyword",
"size": 10
},
"aggs": {
"aggs_age": {
"top_hits": {
"size": 2,
"sort": [
{
"age": {
"order": "desc"
}
}
]
}
}
}
}
}
}
-- range分组查询
GET customer/_search
{
"size": 0,
"aggs": {
"aggs_age": {
"range": {
"field": "age",
"ranges": [
{
"key":"小年青",
"from": 10,
"to": 20
},
{
"key":"中年",
"from": 20,
"to": 30
},
{
"key":"中年大叔",
"from": 30,
"to": 40
},
{
"key":"油腻大叔",
"from": 40,
"to": 50
}
]
}
}
}
}
-- histogram直方图
GET customer/_search
{
"size": 0,
"aggs": {
"aggs_histogram_age": {
"histogram": {
"field": "age",
"interval": 10,
"min_doc_count": 1,
"extended_bounds": {
"min": 0,
"max": 100
}
}
}
}
}
##date_histogram按日期统计
GET tvs/_search
{
"size": 0,
"aggs": {
"aggs_by_date": {
"date_histogram": {
"field": "sold_date",
"interval": "month",
"format": "yyyy-MM-dd",
"min_doc_count": 0,
"extended_bounds": {
"min": "now/d",
"max": "now/d"
}
}
}
}
}
##date_histogram统计每个季度,每个品牌的总价
GET tvs/_search
{
"size": 0,
"aggs": {
"aggs_date_by_quarter": {
"date_histogram": {
"field": "sold_date",
"interval": "quarter",
"format": "yyyy-MM-dd",
"min_doc_count": 0,
"extended_bounds": {
"min": "2021-01-01",
"max": "now/d"
}
},
"aggs": {
"aggs_brand_info": {
"terms": {
"field": "brand",
"size": 10
},
"aggs": {
"aggs_total_price_by_brand": {
"sum": {
"field": "price"
}
}
}
},
"aggs_total_price":{
"sum": {
"field": "price"
}
}
}
}
}
}
-- 按性别:求平均年龄最低的性别
GET customer/_search
{
"size": 0,
"aggs": {
"aggs_sex": {
"terms": {
"field": "sex.keyword",
"size": 10
},
"aggs": {
"aggs_sex_age": {
"avg": {
"field": "age"
}
}
}
},
"min_avg_age":{
"min_bucket": {
"buckets_path": "aggs_sex>aggs_sex_age"
}
}
}
}
-- 批量更新
POST customer/_bulk
{"update":{"_id":"1"}}
{"doc":{"tag_cnt":"2","tag":["java","go"]}}
{"update":{"_id":"2"}}
{"doc":{"tag_cnt":"2","tag":["java","c++"]}}
{"update":{"_id":"3"}}
{"doc":{"tag_cnt":"1","tag":["java"]}}
{"update":{"_id":"4"}}
{"doc":{"tag_cnt":"2","tag":["mysql","javascript"]}}
{"update":{"_id":"5"}}
{"doc":{"tag_cnt":"1","tag":["php"]}}
{"update":{"_id":"6"}}
{"doc":{"tag_cnt":"2","tag":["java","mysql"]}}
{"update":{"_id":"7"}}
{"doc":{"tag_cnt":"2","tag":["c#","elasticsearch"]}}
{"update":{"_id":"8"}}
{"doc":{"tag_cnt":"2","tag":["python","hadoop"]}}
{"update":{"_id":"9"}}
{"doc":{"tag_cnt":"1","tag":["spark"]}}
-- 数组查询优化,可新增tag_cnt字段
GET customer/_search
{
"query": {
"bool": {
"must": [
{
"term": {
"tag": {
"value": "java"
}
}
},
{
"term": {
"tag_cnt": {
"value": "1"
}
}
}
]
}
}
}
POST customer/_bulk
{"update":{"_id":"1"}}
{"doc":{"postDate":"2021-12-01"}}
{"update":{"_id":"2"}}
{"doc":{"postDate":"2021-12-02"}}
{"update":{"_id":"3"}}
{"doc":{"postDate":"2021-12-03"}}
{"update":{"_id":"4"}}
{"doc":{"postDate":"2021-12-04"}}
{"update":{"_id":"5"}}
{"doc":{"postDate":"2021-10-05"}}
{"update":{"_id":"6"}}
{"doc":{"postDate":"2021-11-06"}}
{"update":{"_id":"7"}}
{"doc":{"postDate":"2021-12-23"}}
{"update":{"_id":"8"}}
{"doc":{"postDate":"2021-12-24"}}
{"update":{"_id":"9"}}
{"doc":{"postDate":"2021-12-25"}}
-- 查询最近一个月数据
GET customer/_search
{
"query": {
"range": {
"postDate": {
"gte": "now-30d"
}
}
}
}
-- 方法二:查询最近一个月数据
GET customer/_search
{
"query": {
"range": {
"postDate": {
"gte": "2021-12-25||-1M"
}
}
}
}