是时候用 ES 拯救发际线啦

ES在匹配结果数据量较少时,使用sort排序占用资源吗?

Elasticsearch | 作者 wangxinrong | 发布于2024年08月27日 | 阅读数:3009

{
"size": 10,
"query": {
"bool": {
"filter": [
{
"terms": {
"guid": [
"xxxxx"
]
}
}
]
}
},
"sort": [
{
"createTime": {
"order": "desc"
}
}
]
}
例如上面的查询,如果返回的数据本身就不超过100条,我加sort和不加sort,对性能的影响大吗。它是先找出匹配的100条不到数据,排序完返回最新10条吗。我有没有必要自己取出所有100条数据然后自己做排序,这样会节约性能吗?
已邀请:

Fred2000 - 与其抱怨世界,不如改变自己

赞同来自: INFINI Labs 小助手

在 Elasticsearch 中,sort 排序操作的性能影响取决于多种因素,包括结果集的大小、数据的分布情况、排序字段的类型和索引的配置。在你的示例中,如果结果集不超过 100 条,直接使用 Elasticsearch 的 sort 来排序和返回结果是完全可行的,性能影响非常小。手动取出所有数据再进行排序通常不会带来性能优势,而且还可能导致不必要的复杂性和资源消耗。因此,建议继续使用 ES 查询中的 sort 选项。

要回复问题请先登录注册