繁体   English   中英

如何在nodejs中使用弹性搜索聚合查询进行分页(从,大小)

[英]How to do pagination (from, size) with elastic search aggregation query in nodejs

我目前有一个 API 将用户使用日志返回到前端,但数据太大,所以我需要分页。 我无法在弹性搜索聚合查询中进行分页。 目前使用此代码

const result = await esClient.search({
      index: 'user-logs',
      body: {
        size: 0,
        query: {
          bool: {
            filter: [
              {
                range: {
                  timestamp: {
                    gte: 1596804771643,
                    lte: 1596904771643,
                    format: 'epoch_millis'
                  }
                }
              },
              {
                query_string: {
                  analyze_wildcard: true,
                  query: `*`
                }
              }
            ]
          }
        },
        aggs: {
          3: {
            terms: {
              field: 'email.keyword',
              size: 10,
              order: {
                _term: 'desc'
              },
              min_doc_count: 1
            },
            aggs: {
              4: {
                terms: {
                  field: 'mobile.keyword',
                  order: {
                    _term: 'desc'
                  },
                  min_doc_count: 1
                },
                aggs: {
                  5: {
                    terms: {
                      field: 'fullName.keyword',
                      order: {
                        _term: 'desc'
                      },
                      min_doc_count: 1
                    },
                    aggs: {
                      6: {
                        terms: {
                          field: 'branchName.keyword',
                          order: {
                            _term: 'desc'
                          },
                          min_doc_count: 1
                        },
                        aggs: {
                          1: {
                            sum: {
                              field: 'timespent'
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    });

在简单查询中,我使用“from”和“size”,但在聚合查询的情况下,它们不起作用。 我是弹性搜索的新手。

terms不支持分页。

查看带有子聚合的复合聚合,这些聚合确实支持使用after_key进行分页。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM