Elasticsearch优化的一些思路总结
1、 写入时候使用save()、saveAll()方法的改为使用index(),bulkIndex()方法,sava类方法里面也是使
用的index方法和refresh(),这样优化可以避免每次sava类方法的时候都调用refresh()方面来刷新数
据,使用index类方法,refresh()方法会在设置的时间自己调用refresh()方法,节约性能
2、 设置数据index数据的时候,字段类型的使用,如果是从老版本改为使用新版本的Elasticsearch
的,对于枚举类型可以使用keyWord来提高检索效率,keyWord是完全匹配,
3、 记录数据的时候尽量使用routeKey,这样查询的时候指定routeKey,这样来提高查询效率,查询
接口源码中并没有加入route,需要自己重写一下
4、 接口的职能匹配,比如有一个查询数据和分页接口A(),1、一个调用方使用来正确查
询数据,2、另一个调用方使用来查询出数据之后,取一个总数total,做一个统计,数据不一样,有
些查询条件不一样, 这样造成的就是该接口的调用量太大,而且造成查询效率低下,平均调用时间
过长。根据设计原则的单一职责原则。
正常的使用做法是:1、该接口拆分为2个,一个查询数据,另外一个做统计查询, 因为查询数
据,分页查询的时候会涉及到排序, 但是统计查询并不需要这样,可以去掉排序查询过滤。还有
调用底层查询方法的时候,一个使用queryForPage(),一个使用的是count(),接口使用不一样,接口
职能匹配也是很重要的,不能因为想节约时间,不开放新接口,使用一个接口造成接口的乱调用,
5、 如果条件允许,大神多,还可以写自己业务特有的分词器来提高搜索查询效率
Elasticsearch官方相关资料:[es权威指南](https://www.elastic.co/guide/cn/elasticsearch/guide/current/index.html)