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)