elasticsearch 优化建议
elasticsearch 优化建议
1.集群分片
官方建议 每个分片 20G-40G 最好不超过30G
2.索引配置
默认排序设置(按照公开日倒序,检索页面默认按公开日倒序)
"settings" : {
"index" : {
"sort.field" : "p_date",
"sort.order" : "desc"
}
}
query_string或multi_match查询所针对的字段越多,检索越慢。 (FULL查询)
对于经常查询的某些字段,请使用Elasticsearch的copy-to功能
"title": {
"type": "text"
},
"abstract": {
"type": "text",
"copy_to": "cars_infos"
},
"apply_str_org": {
"type": "text",
"copy_to": "cars_infos"
},
默认排序设置
"settings" : {
"index" : {
"sort.field" : "date",
"sort.order" : "desc"
}
}
不需要分词、检索,仅需要精确匹配,设置为keyword
3.检索语句
禁用 wildcard模糊匹配
使用filter代替query
优点:经常使用的过滤器将被Elasticsearch自动缓存,以提高性能
缺点:在搜索中没有额外的相关度排名
结论:filter有缓存机制,在不使用相关度排名的情况下可以优先使用filter
4.去重计数
如果需要使用elasticsearch的cardinality进行去重统计,建议使用官网插件murmur3
插件安装
sudo bin/elasticsearch-plugin install mapper-murmur3
优点:大大加快统计的速度。
缺点:统计后只显示该字段的hash值
cardinality配合collapse可以完成结果去重以及总数统计去重的功能。
缺点:无法根据不同类别的字段去重,只能在相同的类别的情况下完成去重