如果排序后顺序发生变化,如何排序呢?对于已经写到文件中的数据,比如store field和term vector,需要从文件中读出来,重新排列后再写到一个新文件里,原来的文件就相当于一个临时文件 。对于内存中的数据结构,直接在内存中重排后写到文件中 。
相比没有IndexSorting时,对性能影响比较大的一块就是store field的重排,因为这部分需要从文件中读出再写回,而其他部分都是内存操作,性能影响稍小一些 。这里我们也可以做一些思考,如果将store field和term vector这类数据也buffer在内存中,是否可以提升IndexSorting开启时的写入性能?
2. Merge时保证新的Segment数据有序
由于Flush时Segment已经是有序的了,所以在Merge时也就可以采用非常高效的Merge Sort的方式进行 。
总结IndexSorting是一种能够极大提高查询效率的技术,它通过预排序和提前中断大大减少了需要扫描的数据量,而且附带的优化是可以提高压缩率,减少存储空间 。对于查询时需要按照某列排序的场景,它非常有用,但对于相关性分数排序的场景则无法通过预排序来优化 。IndexSorting的缺点是对写入性能有影响,主要是体现在Segment的Flush和Merge阶段,对于非常看重写入性能的场景也不适合使用 。总体上说,这是一项非常有用也很新的技术,相信它在Lucene和ES中的重要性会越来越强,也会有越来越多的业务场景受益于这个功能 。
以上关于本文的内容,仅作参考!温馨提示:如遇健康、疾病相关的问题,请您及时就医或请专业人士给予相关指导!
「四川龙网」www.sichuanlong.com小编还为您精选了以下内容,希望对您有所帮助:- 肚皮舞教程 动作指导
- 肚皮舞教程的入门动作
- 闲鱼无货源你必须搞懂的5个问题 闲鱼无货源赚钱详细教程
- 阿里云建网站详细步骤 阿里云建站详细教程
- imac一体机重装系统 imac装win7详细教程
- 路由器频段带宽设置方法教程 频段带宽
- 开菜鸟驿站需要哪些前提条件 无经验的人可以开菜鸟驿站吗
- ps图片转矢量图教程 如何做矢量图海报
- QQ永久冻结解封方法技巧教程 免费强制解冻qq网站
- Excel文件转Dat文件教程 dat是什么文件