You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Spring Data Elasticsearch如何全局配置snake_case字段命名策略

解决方案

你只需要在现有继承了AbstractElasticsearchConfiguration的配置类中,重写fieldNamingStrategy方法,返回官方内置的SnakeCaseFieldNamingStrategy实例即可完成全局配置。

完整配置示例

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.data.elasticsearch.config.AbstractElasticsearchConfiguration;
import org.springframework.data.elasticsearch.core.mapping.FieldNamingStrategy;
import org.springframework.data.elasticsearch.core.mapping.SnakeCaseFieldNamingStrategy;
import org.springframework.data.elasticsearch.client.ClientConfiguration;
import org.springframework.data.elasticsearch.client.RestClients;
import org.elasticsearch.client.RestHighLevelClient;

@Configuration
public class RestClientConfig extends AbstractElasticsearchConfiguration {

    @Override
    @Bean
    public RestHighLevelClient elasticsearchClient() {
        final ClientConfiguration clientConfiguration = ClientConfiguration.builder()  
            .connectedTo("localhost:9200")
            .build();
        return RestClients.create(clientConfiguration).rest();                         
    }

    // 全局snake_case字段命名策略配置
    @Override
    public FieldNamingStrategy fieldNamingStrategy() {
        return new SnakeCaseFieldNamingStrategy();
    }
}

注意事项

  • 配置生效后,所有实体类的驼峰属性会自动映射为ES中的蛇形字段,比如sampleProperty会自动转为sample_property
  • 单个字段依然可以通过@Field(name = "自定义名称")的方式覆盖全局策略,自定义字段名优先级更高
  • 若之前已创建过索引,需要删除旧索引后重新触发映射初始化,已存在的索引字段不会自动变更命名格式

内容的提问来源于stack exchange,提问作者m.delloso

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.02 06:45:03