我有一系列文档如下:
`
{
"_index": "senseihub-data",
"_type": "historical-data",
"_id": "AVa-BvxJ9Iu6vSdmuerK",
"_score": 1,
"_source": {
"university": "JOHNS HOPKINS UNIVERSITY",
"description": "FUNCTIONAL ANALYSIS OF CAROTID BODY RESPONSES TO HYPOXIA IN MICE\"",
"funding": 3327323,
"taxonomy": "Signal Processing "
}
}
`
现在我想查找一些分类法的总资金信息。 例如如果我搜索分类法:'信号处理','数据挖掘',我想得到以下输出
信号处理:所有具有分类法作为信号处理的文档的“资金”字段总和
数据挖掘:所有具有分类法作为数据挖掘的文档的“资金”字段总和
这是我到目前为止所提出的,但这不能正常工作:
`
{
"query":{
"bool":{
"should":[
{
"term":{
"taxonomy":"Signal Processing"
}
},
{
"term":{
"taxonomy":"Data Mining"
}
}
]
}
},
"sort":[
{
"funding":{
"order":"desc"
}
}
],
"aggs":{
"funds":{
"sum":{
"field":"funding"
}
}
}
}
`
我是弹性搜索的绝对新手。请帮忙。
答案 0 :(得分:0)
您可以通过
获得每个分类的资金总额{ "query": { "match_all": {} },"aggs": { "taxonomy": { "terms": { "field": "taxonomy", "size": 0 },"aggs": { "NAME": { "sum": { "field": "funding" } } } } },"size": 0 }
以上查询将为您提供每个分类的资金总额。
如果您想要特定分类的资金总额
{ "query":{ "term":{ "taxonomy":{ "value":"Signal Processing" } } }, "aggs":{ "NAME":{ "sum":{ "field":"funding" } } } }
确保字段“分类”未分析否则“信号处理”之类的值将被标记为“信号”,“处理”。
您的查询要尝试的是: