最近在使用es查询某个字段在特定查询条件下的某个字段的求和时,忘记了query语句是怎么写的,简单记录一下,方便自己和他人查阅。
一 什么是elasticsearch?
elasticsearch是一个分布式的使用 REST 接口的搜索引擎,简称为ES,它是面向文档的,可以存储整个对象或文档。
二:elasticsearch的几种操作
1 对某个字段求和,相当于sql语句的:
select sum(字段名) from table where 条件1 and 条件2
#对某个字段求和操作
{
"query": {
"bool": {
"must": [
{
"range": {
"条件1": {
"gte": "2022-05-08",
"lte": "2022-05-14"
}
}
},
{
"match": {
"条件1": "***"
}
}
],
"must_not": [],
"should": []
}
},
"from": 0,
"size": 0,
"sort": [],
"aggs": {
"求和后叫的字段名": {
"sum": {
"field": "求和字段"
}
}
}
}
2 根据多个字段进行分组,相当于sql语句的:
select * from table where 条件1 and 条件2 group by XXX,YYY
#根据多个字段进行聚合
{
"query": {
"bool": {
"must": [
{
"range": {
"条件1": {
"gte": "2022-05-08",
"lte": "2022-05-08"
}
}
},
{
"match": {
"条件2": "J00371"
}
}
],
"must_not": [],
"should": []
}
},
"from": 0,
"size": 0,
"sort": [],
"aggregations": {
"分组字段1": {
"terms": {
"field": "es索引中的字段1"
},
"aggregations": {
"分组字段2": {
"terms": {
"field": "es索引中的字段2"
}
}
}
}
}
}
3、向es中插入数据,相当于sql的:
insert into table (字段名1,字段名2,…………) VALUES (字段1的值,字段2的值,……);
PUT /索引名/type/8000
{
"filed1": "value1",
"filed2": "value2",
"filed3": "value3",
………………
}
文章来源:https://www.toymoban.com/news/detail-524018.html
4、删除es的某复合条件的记录,相当于sql的:文章来源地址https://www.toymoban.com/news/detail-524018.html
delete from table where condition1 and condition2
{
"query": {
"bool": {
"must": [
{
"match": {
"condition1": "condition1"
}
}
],
"must_not": [],
"should": []
}
}
}
到了这里,关于elasticsearch的group by分组和sum求和的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!