1.写入到es中的数据量尽量少于filesystem cache的剩余内存
2.es中的数据放那些需要搜索的必要信息
3.冷热数据分离,假如有6条机器,两个索引,一个索引放热数据,一个索引放冷数据,每个索引3个shard,3台机器放热数据index,另外3台机器放冷数据index,这样你大部分时间在访问热数据,热数据都在filesystem cache中,这样访问性能是很高的,另外冷数据的话,大部分都在磁盘上,即使性能差点,也是少部分人在访问。
4.设计es中的数据模型,例如订单表、订单条目表
order索引、orderItem索引,当写入orderItem索引的时候把order中的关键字段写入,就不用通过关联来查询了,大大提高了搜索速度。
5.分页性能优化,因其属于分布式的,例如1页10条,想查第5页数据,每个shard上得查询50条数据,3个shard得查150条数据。因翻页越深,性能越差。scorll api原理为生成返回的属于所有数据的一个快照, 适用于连续页的性能优化,不能跳页,例如微博。