• 性能优化的杀手锏——filesystem cache
    • 最佳的情况下,就是你的机器的内存,至少可以容纳你的总数据量的一半
  • 数据预热

  • 冷热分离
    • 分不同索引
  • document 模型设计
  • 分页性能优化
    • 不允许深度分页(默认深度分页性能很差)
    • 使用scroll api
    • 使用search_after,search_after 的思想是使用前一页的结果来帮助检索下一页的数据,显然,这种方式也不允许你随意翻页,你只能一页页往后翻。初始化时,需要使用一个唯一值的字段作为 sort 字段。

scroll操作

  • scroll 查询 可以用来对 Elasticsearch 有效地执行大批量的文档查询,而又不用付出深度分页那种代价。
  • scroll查询前,需要申请一个search context,context是消耗较大资源的,有一个超时释放的时间,用户也可以自定义
  • 申请到context后,就可以执行scroll查询了
  • 游标查询会取某个时间点的快照数据。 查询初始化之后索引上的任何变化会被它忽略。 它通过保存旧的数据文件来实现这个特性,结果就像保留初始化时的索引 视图 一样。