es查询大文本效率_剖析Elasticsearch的IndexSorting:一种查询性能优化利器

前言

前两周写过一篇《基于Lucene查询原理分析Elasticsearch的性能》,在最后留了一个彩蛋,说下一篇会介绍一种可以极大的优化查询性能的技术。本文就来介绍这种技术——IndexSorting。

因为IndexSorting是在ES6.0之后才作为实验性的功能加入,相关的介绍资料还比较少,所以大部分人对它不够了解。另一方面是,想要理解它为什么能够优化性能、适合哪些场景、内部如何实现、有何副作用等,也需要花一翻功夫。所以本文专门对IndexSorting进行一个介绍,并分析它的作用、实现、适用场景等。如果你的场景能用上IndexSorting,那么它肯定会给你带来一个巨大的性能提升!

什么是IndexSorting?

IndexSorting是ES的新功能

在Elasticsearch中,IndexSorting是一个很新的功能,6.0版本才引入,并且标记这个功能是Beta版(6.5版本可能会去掉Beta标记)。

在Lucene中,IndexSorting其实已经发展了一段时间。最早在10年,Lucene提供了一个IndexSorter的工具,作为一个离线工具可以对Index数据排序后生成一个新的Index。后来13年加入了SortingMergePolicy,在Segment进行merge的时候可以生成排好序的新Segment,在17年又加入了Sorting on flushed segment的功能,在Segment最初生成时就进行排序。另一方面是Lucene在查询时也做了很多优化,如果有IndexSorting,很多地方做了提前中断,后面会讲提前中断对查询性能的巨大作用。经过几次Lucene的改进和优化,IndexSorting这个功能也终于被集成进Elasti

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值