ELK合集(十一):Elasticsearch关键术语之排序 持续更新

本文介绍了Elasticsearch中排序的本质和两种实现方式:doc_values(默认)和fielddata。doc_values利用磁盘空间提供排序和聚合功能,而fielddata在JVM堆内存中创建,适用于text字段排序,但可能导致内存溢出。了解这些关键术语有助于优化ES的性能和资源使用。
摘要由CSDN通过智能技术生成

Elasticsearch关键术语 系列博文 目的只用来了解概念 ; 其中 涉及到的配置和使用 是为了方便日后使用时查询的

排序

ES搜索结果的排序 默认是按照文档的_score相关性算分 算分高的文档优先展示 搜索时可以指定根据某字段进行排序 (类似 SQL的order by)

本质

  • 排序是针对原始内容进行的 倒排索引无法发挥作用
  • 需要用到正排索引 通过文档ID和字段快速得到字段原始内容

实现排序的两种方式

方式一 设置"doc_values":true 默认

本质

  • DocValues在索引时 和倒排索引一起创建

  • 通过序列化把数据结构持久化到磁盘 我们可以充分利用操作系统的内存 而不是 JVM 的 Heap

  • 当workingset远小于系统的可用内存 系统会自动将 DocValues保存在内存中 使得其读写十分高速

  • 不过 当其远大于可用内存时 操作系统会自动把DocValues写入磁盘

  • 很显然 这样性能会比在内存中差很多 但是它的大小就不再局限于服务器的内存了 如果是使用JVM的Heap来实现那么只能是因为OutOfMemory导致程序崩溃了

作用

  • text类型的字段不能排序

  • 其他类型的字段都可排序 聚合 脚本操作

  • 可避免大量JVM heap占用而导致内存溢出

  • 但 降低索引速度 占用额外

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Cheese海盐芝士

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值