在哪里可以找到ElasticSearch索引配置及SpringData @Settings对应JSON配置文档?
Spring Data ElasticSearch @Settings外部配置JSON使用说明
基本用法
你可以将配置JSON放在项目resources目录下,通过@Settings的settingPath属性指定路径即可,比如配置文件路径为resources/es/commodity-settings.json,注解写法为:
@Settings(settingPath = "/es/commodity-settings.json") @Document(indexName = "commodity") public class CommodityPO { // 字段定义 }
JSON结构规则
这个JSON的结构和ElasticSearch原生创建索引时的settings请求体完全一致,不需要额外添加外层包装,直接写入ES支持的索引配置项即可。
常用可配置项
- 基础配置:
number_of_shards(主分片数量,默认1)、number_of_replicas(副本数量,默认1) - 刷新策略:
refresh_interval(索引刷新间隔,默认1s,写入量大的场景可以调大提升性能) - 分析器配置:
analysis节点下可自定义分词器、令牌过滤器、字符过滤器,比如配置自定义IK分词器、拼音分词规则 - 生命周期配置:
index.lifecycle.name(关联的ILM索引生命周期策略名称)、index.lifecycle.rollover_alias(滚动更新别名) - 持久化配置:
index.translog.durability(translog持久化策略)等
配置示例
{ "number_of_shards": 3, "number_of_replicas": 2, "refresh_interval": "20s", "analysis": { "analyzer": { "custom_ik_smart": { "type": "ik_smart", "use_smart": true } } } }
注意:如果同时在
@Settings注解内直接声明配置,又指定了settingPath,外部JSON的配置优先级更高,重复配置项会以JSON中的取值为准。
所有ElasticSearch原生支持的索引级配置项,都可以写在这个JSON文件中使用。
内容的提问来源于stack exchange,提问作者gray hair newbie
相关产品推荐
相关产品推荐

