elasticsearch配置优化
节点
Elasticsearch 节点有四种 :
master and data--- 默认是这种配置,既存储数据,也可以成为master节点
only master --- 协调各个节点间均衡,如分片的移动
only data --- 只存储数据,此种节点的http.enable: false 可设置成false
No data and no master --- 既不是master,也不存储数据,承担将请求路由到相应data节点,并解析数据和对结果分组,此种节点node.client: true 可设置成true。
通过以下两个属性的组合来配置这四种节点
node.data: true
node.data: true
合理的配置节点的类型是有必要的,有利于提升集群性能。
分片
分片是不可动态改变的,所以在配置集群时要合理的设置分片数,考虑数据的增长。
副本
副本可以动态更改,副本和分片会随着节点的增加或者减少而在节点间移动。这个是es集群控制的,不需要手动处理。
索引
建索引尽量使用batch模式,禁用副本,速度更快,es应配置足够的内存,一般为机器内存的一半。通过多线程加载数据并不会提高速度。
index.store.compress.stored: true
index.store.compress.tv: true
在elasticsearch.yml设置这两个属性可压缩数据文件,极大的减少文件的大小。
elasticsearch.yml 推荐设置说明
node.master: false
node.data: true
index.number_of_shards: 1
index.number_of_replicas: 0
http.enabled: false
以上属性根据需要合理配置,充分考虑数据增长,负载均衡。
path.data: /path/to/data1 此属性是存储数据文件的路径,建议不要跟elasticsearch部署文件放在一起,单独放在一个目录。
path.logs: /path/to/logs es日志文件目录,也应单独设置目录
path.plugins: /path/to/plugins 插件目录,也应单独设置目录
path.conf: /path/to/conf 配置文件目录,包含日志配置文件,也可单独设置目录
以上推荐设置可方便集群升级和数据迁移。
Query 优化
每个query和filter都可以设置boost来调整条件占的比重从而影响结果分数。也可以在index的时候设置boost,但是如果要跳转boost就得rebuild。