ElasticSearch-如何返回最后n个条目?

v8wbuo2f  于 2022-11-02  发布在  ElasticSearch
关注(0)|答案(1)|浏览(148)

我是ElasticSearch的新手,所以我的理解相当有限。对于一个项目,使用ReactJS,我需要返回数据库中最新的n个条目,这些条目每天都在变化。我目前正在返回所有数据,并在前端使用slice(-n)来解决这个问题,但我意识到这并不理想。这是我目前发布的内容:

return axios
    .post(
      `${url}/${db}/1`,
      {
        aggs: {
          sales_over_time: {
            date_histogram: {
              field: "date",
              calendar_interval: "day",
              format: "dd-MM-yyyy",
            },
          },
        },
      },

    )
    .then(({ data }) => {
      return data;
    });

任何帮助都是感激不尽的,
谢谢

l3zydbqr

l3zydbqr1#

1.您可以在elasticsearch查询中使用order参数轻松地对date_histogram聚合结果进行排序。
1.您也可以在类型为bucket_sort的子汇总中提供size参数,或在filterquery中使用range,来分割汇总的结果。
下面是一个ElasticSearch查询-

{
  "aggs" : {
    "sales_over_time" : {
      "date_histogram" : {
        "order" : {
          "_key" : "desc"
        },
        "field" : "date",
        "calendar_interval":"day",
        "format" : "dd-MM-yyyy"
      },
      "aggs" : {
        "latest7" : {
          "bucket_sort" : {
            "size" : 7,
            "sort" : []
          }
        }
      }
    }
  }
}

相关问题