作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我似乎无法按顺序排列 flex 查询的结果。
我将内存利用率统计信息存储在elasticsearch中。文档示例如下所示:
{
"Component": "ABC",
"memUsage" : "100",
"Timestamp" : "1562072516001"
}
"aggregations": {"averages": {"buckets": {
"ABC": {
"doc_count": 1,
"memUsageAVG": {"value": 254}
},
"XYZ": {
"doc_count": 1,
"memUsageAVG": {"value": 203}
}
}}}
{
"size":0,
"query":{
"bool":{
"must":[
{
"range":{
"Timestamp":{
"gte":"1562072516001",
"lte":"1562072516001"
}
}
}
]
}
},
"aggs":{
"averages":{
"filters":{
"filters":{
"ABC":{
"match":{
"Component":"ABC"
}
},
"XYZ":{
"match":{
"Component":"XYZ"
}
}
}
},
"aggs":{
"memUsageAVG":{
"avg":{
"field":"memUsage"
}
},
"final_sort":{
"bucket_sort":{
"sort":[
{
"memUsageAVG":{
"order":"desc"
}
}
]
}
}
}
}
最佳答案
如您的注释中所述,之所以不起作用,是因为在Elasticsearch 6.1.0(release notes)中添加了bucket_sort
父聚合,并且您正在运行ES 5.6.16。
您应该能够使用terms
聚合并通过子聚合对存储桶进行排序,从而在ES 5.x(和6.x / 7.x)中实现相同的功能:
POST /_search
{
"size": 0,
"aggs": {
"averages": {
"terms": {
"field": "Component",
"size": 10, // Recommend keeping this low-ish to limit memory usage
"include": ["ABC", "XYZ"], // Optionally limit to specific Components
"order": {
"memUsageAVG": "desc"
}
},
"aggs": {
"memUsageAVG": {
"avg": {
"field": "memUsage"
}
}
}
}
}
}
Component
字段是在映射中分析的
keyword
。如果没有为该索引明确定义映射,则该字段将默认为分析的
text
,并且您会看到类似
Fielddata is disabled on text fields by default
的错误。有关更多信息,请参阅
Keyword datatype和
creating an index with mappings上的文档。
include
子句,但是如果您知道要聚合的组件,那么它只能帮助提高性能。
关于elasticsearch - 未知的BaseAggregationBuilder [bucket_sort]-弹性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56855164/
我正在尝试根据此处的文档创建复合聚合: https://www.elastic.co/guide/en/elasticsearch/reference/6.8/search-aggregations-
我是一名优秀的程序员,十分优秀!