- 性能优化的杀手锏——filesystem cache
- 最佳的情况下,就是你的机器的内存,至少可以容纳你的总数据量的一半
- 数据预热
- 冷热分离
- 分不同索引
- document 模型设计
- 分页性能优化
- 不允许深度分页(默认深度分页性能很差)
- 使用scroll api
- 使用search_after,search_after 的思想是使用前一页的结果来帮助检索下一页的数据,显然,这种方式也不允许你随意翻页,你只能一页页往后翻。初始化时,需要使用一个唯一值的字段作为 sort 字段。
scroll操作
scroll
查询 可以用来对 Elasticsearch 有效地执行大批量的文档查询,而又不用付出深度分页那种代价。- scroll查询前,需要申请一个search context,context是消耗较大资源的,有一个超时释放的时间,用户也可以自定义
- 申请到context后,就可以执行scroll查询了
- 游标查询会取某个时间点的快照数据。 查询初始化之后索引上的任何变化会被它忽略。 它通过保存旧的数据文件来实现这个特性,结果就像保留初始化时的索引 视图 一样。