【发布时间】:2022-02-03 05:53:03
【问题描述】:
我有一个系统,其中 EESS 有两个索引(简化)。
- transactions_2022
- transactions_2021
我根据“transactionDate”决定年份,我的查询是“给我 500 个满足按 transactionDate desc 排序的过滤器的交易”
我想使用https://www.elastic.co/guide/en/elasticsearch/reference/8.0/index-modules-index-sorting.html按事务日期按时间排序搜索它们
POST /transactions_2022,transactions_2021/_search{
"from" : 0, "size" : 500,
"query": ...,
"sort": {
"transactionDate": {
"order": "desc"
}
}
}
问题是(我之所以问是因为我正在设计一个新系统并试图证明版本升级的合理性,无法轻松测试),如果我在两个索引中启用索引排序并请求 500 个事务, EESS 是否会足够聪明地返回避免对所有与过滤器匹配的文档进行全扫描而只返回 500 个第一笔交易? (或每个索引中的 500 个,然后在后处理阶段丢弃其他 500 个)。
此外,如果我按索引名称排序...,是否会序列化查询?或者它们将并行执行,然后如果不需要则丢弃一个
坦克!
【问题讨论】:
标签: elasticsearch