我正在配置一个 elasticsearch spring 应用程序,并按照我创建了这个 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作为命名策略,并且在文档中这就是我发现的:
无需进一步配置,Spring Data Elasticsearch 将使用对象的属性名称作为 Elasticsearch 中的字段名称。这可以通过在该属性上使用 @Field 注释来更改单个字段。
也可以在客户端(Elasticsearch 客户端)的配置中定义一个 FieldNamingStrategy。例如,如果配置了 SnakeCaseFieldNamingStrategy,则对象的属性 sampleProperty 将映射到 Elasticsearch 中的 sample_property。FieldNamingStrategy 适用于所有实体;可以通过在属性上使用 @Field 设置特定名称来覆盖它。
问题是,我怎样才能一劳永逸地配置客户端?