【问题标题】:What does Elasticsearch 5 do under the hood when sorting?排序时 Elasticsearch 5 在后台做了什么?
【发布时间】:2019-02-12 06:22:45
【问题描述】:

我在 Elasticsearch 文档中阅读了以下文字。

https://www.elastic.co/guide/en/elasticsearch/reference/5.4/search-request-sort.html#_memory_considerations

排序时,相关的排序字段值被加载到内存中。这意味着每个分片应该有足够的内存来容纳它们。

这与我对排序的理解不同。我认为某些数据类型(例如关键字)应该已经排序,因为 Elasticsearch 会在它们上创建索引。这些已经排序的字段不需要加载到内存中再次排序。

那我理解对了吗?

【问题讨论】:

标签: elasticsearch


【解决方案1】:

关系数据库中的索引表示 B* 树,确实是排序的。

Elasticsearch 中的索引是您存储数据的位置;之前我们将其与关系世界中的表格进行了比较,但由于各种原因这不是真的,所以我们不要将其用作直接比较。除了上面提到的索引时排序 Val 之外,索引并不是存储为基于特定字段的排序数据结构。但是,某些字段可以有效地用于排序(如数字数据类型或未分析的文本)。这就是上面的内存考虑发挥作用的地方。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-09-29
    • 2017-07-05
    • 1970-01-01
    • 1970-01-01
    • 2016-07-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多