我是ElasticSearch的新手
我想对两个日期(2020年8月27日至2020年8月31日)之间的工资加起来,而我无法实现。
我在这里发布简单查询和查询结果。
我阅读了有关日期直方图的信息,但找不到具体答案,如果结果很简单,那么为什么日期直方图要求设置间隔并返回存储桶中的数据。
员工索引中的文档是
{
"took": 3,
"timed_out": false,
"_shards": {
"total": 1,
"successful": 1,
"skipped": 0,
"failed": 0
},
"hits": {
"total": {
"value": 3,
"relation": "eq"
},
"max_score": 1.0,
"hits": [
{
"_index": "employees",
"_type": "_doc",
"_id": "wO8AMXQBDHla7ClA8iDV",
"_score": 1.0,
"_source": {
"FirstName": "JOYE",
"LastName": "WIATR",
"Designation": "CEO",
"Salary": 144000,
"DateOfJoining": "25/05/2009",
"Address": "9068 SW. Grove St. Waynesboro, PA 17268",
"Gender": "Female",
"Age": 58,
"MaritalStatus": "Unmarried",
"Interests": "Renting movies,Scuba Diving,Snowboarding,Butterfly Watching,Dumpster Diving,Badminton,Church/church activities"
}
},
{
"_index": "employees",
"_type": "_doc",
"_id": "wu8CMXQBDHla7ClAwCDT",
"_score": 1.0,
"_source": {
"FirstName": "Ajay",
"LastName": "Jaiswal",
"Designation": "CEO",
"Salary": 44000,
"DateOfJoining": "28/08/2020",
"Address": "Hyderabad",
"Gender": "Male",
"Age": 29,
"MaritalStatus": "Unmarried",
"Interests": "Watching movies , learing from scratch"
}
},
{
"_index": "employees",
"_type": "_doc",
"_id": "w-8KMXQBDHla7ClAICC9",
"_score": 1.0,
"_source": {
"FirstName": "MR.X",
"LastName": "Jaiswal",
"Designation": "CEO",
"Salary": 56000,
"DateOfJoining": "30/08/2020",
"Address": "Hyderabad",
"Gender": "Male",
"Age": 39,
"MaritalStatus": "Married",
"Interests": "Watching movies,Watching war movies"
}
}
]
}
}
这是我的查询
{
"query": {
"bool": {
"must": [
{
"range": {
"DateOfJoining": {
"gte": "27/08/2020",
"lte": "31/08/2020"
}
}
}
]
}
}
}
这是查询的结果
{
"took": 11,
"timed_out": false,
"_shards": {
"total": 1,
"successful": 1,
"skipped": 0,
"failed": 0
},
"hits": {
"total": {
"value": 2,
"relation": "eq"
},
"max_score": 1.0,
"hits": [
{
"_index": "employees",
"_type": "_doc",
"_id": "wu8CMXQBDHla7ClAwCDT",
"_score": 1.0,
"_source": {
"FirstName": "Ajay",
"LastName": "Jaiswal",
"Designation": "CEO",
"Salary": 44000,
"DateOfJoining": "28/08/2020",
"Address": "Hyderabad",
"Gender": "Male",
"Age": 29,
"MaritalStatus": "Unmarried",
"Interests": "Watching movies , learing from scratch"
}
},
{
"_index": "employees",
"_type": "_doc",
"_id": "w-8KMXQBDHla7ClAICC9",
"_score": 1.0,
"_source": {
"FirstName": "MR.X",
"LastName": "Jaiswal",
"Designation": "CEO",
"Salary": 56000,
"DateOfJoining": "30/08/2020",
"Address": "Hyderabad",
"Gender": "Male",
"Age": 39,
"MaritalStatus": "Married",
"Interests": "Watching movies,Watching war movies"
}
}
]
}
}
我真的无法实现
答案 0 :(得分:1)
我想对两个日期(2020年8月27日至2020年8月31日)之间的工资加起来,而我无法实现。
尝试以下查询:
{
"size": 0,
"query": {
"range": {
"DateOfJoining": {
"gte": "27/08/2020",
"lte": "31/08/2020"
}
}
},
"aggs": {
"sum_of_salary": {
"sum": {
"field": "Salary"
}
}
}
}
我阅读了有关日期直方图的信息,但找不到具体答案,并且 如果结果非常简单,那么为什么日期直方图要求输入 间隔,并返回存储桶中的数据。
在日期直方图中,数据是根据某个时间段进行存储的。
例如,如果您想获得每月支付给员工的薪水总额,则日期直方图将对您有所帮助。