ES军规

一、每个Index都配置一个Alias,并通过Alias访问Index。

二、每个Index禁用【_all】字段。

三、每个Index禁用【dynamic mapping】。

四、每个Index默认禁用【source】字段,如果需要开启,给出明确的理由。

五、禁用【_type】这个概念,每个Index默认只有【doc】这个type。

六、每个索引定义的时候,必须明确给出【number_of_shards】与【number_of_replicas】,数据量不大的情况下,前者是1,后者是2就好。

七、默认情况下,配置每个Index的【refresh_interval】为5s。

八、全量刷新Index时,先配置【refresh_interval】为-1,刷新结束后手动refresh,再将【refresh_interval】修改为默认值:5s。

九、每个Index Mapping定义时,尽可量详细的给出每个field的信息,如type、index、store、format、analyzer等。

十、重启ES时,最好做一次flush操作,清除translog与in-memory buffer,可以有效降低ES的启动时间。

十一、不定期对大Index做optimize操作,减少segment的数量以提升查询性能。【注】optimize期间最好关闭Index的更新入口。

十二、非全文检索时,禁用掉评分机制。

十三、代码中禁止使用WriteRequest.RefreshPolicy.IMMEDIATE 策略

 

上一篇:ElasticSearch全流程是啥,看这篇我也懂了


下一篇:基于500w业务数据的存储选型