据我所知,在Elasticsearch中没有像以下这样做的方法:
以下是相关文档链接:
作为对此问题的更新,以下是可用于测试的公共索引:
换句话说,我希望对聚合结果(包含多个聚合)进行排序,并获取偏移量。
SELECT * FROM myindex
GROUP BY agg_field1, agg_field2, agg_field3 // aggregation
ORDER BY order_field1, order_field2, order_field3 // sort
LIMIT 1000, 5000 // paginate -- get page 6 of size 1000 records
以下是相关文档链接:
- https://www.elastic.co/guide/en/elasticsearch/reference/master/search-aggregations-bucket-terms-aggregation.html
- https://discuss.elastic.co/t/elasticsearch-aggregation-order-by-top-hit-score-with-partitions/102228
- https://github.com/elastic/elasticsearch/issues/21487
- 进行聚合查询
- 获取结果数量
- 根据所需的结果和页面大小将其分成N个段
- 使用上述段重新运行查询
作为对此问题的更新,以下是可用于测试的公共索引:
# 5.6
e=Elasticsearch('https://search-testinges-fekocjpedql2f3rneuagyukvy4.us-west-1.es.amazonaws.com')
e.search('testindex')
# 6.4 (same data as above)
e = Elasticsearch('https://search-testinges6-fycj5kjd7l5uyo6npycuashch4.us-west-1.es.amazonaws.com')
e.search('testindex6')
这个数据集有10,000条记录,可随意测试:
我想要进行的查询如下(sql语言):
SELECT * FROM testindex
GROUP BY store_url, status, title
ORDER BY title ASC, status DESC
LIMIT 100 OFFSET 6000
换句话说,我希望对聚合结果(包含多个聚合)进行排序,并获取偏移量。