gpt4 book ai didi

elasticsearch - 如果文档计数也为零,则 Elasticsearch 返回数据

转载 作者:行者123 更新时间:2023-12-03 02:14:24 26 4
gpt4 key购买 nike

 let peopleCount = {
size: 0,
aggs: {
//'min_doc_count': 0,
group_by_day: {
// min_doc_count: 0,
date_histogram: {
field: 'timestamp',
interval: '1d',
time_zone: '+11:00',
//format : 'yyyy-MM-dd'
},
aggs: {
// min_doc_count: 0,
Location: {
filter: {

match: {
'data.name': 'Entrance',

},

},
aggs: {
// min_doc_count: '0',
cou: {
sum: {
field: 'data.north',
},

},

},
},
},
},

},
query: {
bool: {

must: [
{
// range: { timestamp: { gte: startDate, lte: endDate } }
range: { timestamp: { gte: '2020-03-20', lte: '2020-03-28' } },
},
{
term: {
account: accountId,
},
},
{
term: {
'device._id': deviceId,
},
},
],
},
},
};
这是我的 Elasticsearch 查询,但是如果doc counit也为零,我想返回所有数据。我尝试添加min-doc-count,但这给了我这个错误。
parsing_exception] Aggregation definition for [min_doc_count starts with a [VALUE_NUMBER], expected a [START_OBJECT]., with { line=1 & col=35 }
你们能告诉我在该查询中我应该在哪里添加最小文档数吗?或者是否有其他选择可以满足我的要求

最佳答案

错误的原因是min_doc_count被视为独立聚合,而不是agg设置/参数。最重要的是,min_doc_count仅用于termshistogram aggs等中,而不用于sum等数字指标中。而是使用了 missing 参数。但是,当您将其设置为0时,其效果与根本不设置相同。
您的问题尚不清楚wanting to return all data where the doc count is 0是什么意思。但我怀疑您希望不考虑您的查询就进行汇总。在这种情况下,您实际上有2个选择:

  • 使用 filter aggs分别汇总满足一个或另一个查询的值。
  • 或使用 global agg忽略顶级查询,使您可以在其范围之外(全局)进行聚合。

  • 两者当然可以合并。

    关于elasticsearch - 如果文档计数也为零,则 Elasticsearch 返回数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63896953/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com