当前位置: 首页 > 知识库问答 >
问题:

使用Spring数据Elasticsearch的FieldNamingStrategy

章承基
2023-03-14

我正在配置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 Clients)的配置中定义FieldNamingStrategy。例如,如果配置了SnakeCaseFieldNamingStrategy,则对象的属性sampleProperty将映射到Elasticsearch中的sample_property。FieldNamingStrategy适用于所有实体;可以通过在属性上设置带有@Field的特定名称来覆盖它。

问题是,如何一次性配置客户端?

共有1个答案

韦翰音
2023-03-14

只需覆盖配置类中的field dNamingStrategy()方法:

@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();                         
    }

    @Override
    protected FieldNamingStrategy fieldNamingStrategy() {
        return new SnakeCaseFieldNamingStrategy();
    }

}
 类似资料:
  • 我试图使用Spring数据Elasticsearch连接到Elasticsearch 5。 根据链接-https://github.com/spring-projects/spring-data-elasticsearch,spring数据弹性搜索-3.0.0。M4与Elasticsearch 5.4.0兼容 但我在尝试连接Elasticsearch时出现以下错误 请告诉我,如果你们中的任何一个人

  • 我正在使用弹性搜索的Spring数据。我的存储库类有一个方法来获取索引中的最新插入。 这将失败,但有以下例外。 JAVAlang.NullPointerException:在组织中为空。springframework。数据弹性搜索。果心弹性搜索模板。queryformage(ElasticsearchTemplate.java:307)~[spring-data-elasticsearch-2.0

  • 我有一个spring boot 1.5.9应用程序,它使用spring数据elasticsearch(2.1.3)连接到elasticsearch 2.4.0实例。现在,我需要将spring boot升级到版本2,使其能够与新的依赖项一起工作。 如果我使用最新的spring启动版本(2.1.0),它附带了spring数据elasticsearch 3.1.2,它使用elasticsearch 6.

  • 看起来像个虫子。排序对于简单的搜索非常有效,但对于滚动则不起作用。我尝试这样做: 之后: 运行时,应用程序显示: 搜索: |调试o.s.d.elasticsearch。果心查询:937{“from”:0,“size”:5,“QUERY”:{“constant\u score”:{“filter”:{…跳过…},“boost”:1.0}},“version”:true,“\u source”:{“i

  • 我对elasticsearch和spring数据elasticsearch非常陌生,在查询嵌套对象时遇到了一些问题。 我使用ElasticSearch存储库在ElasticSearch中保存一个嵌套模型实例。因此,elasticsearch中只有一个条目包含所有数据,据我所知,这意味着我有一个嵌套文档。 我需要使用Criteria实现一个相对复杂的查询来迭代构建查询。当我尝试使用点表示法访问嵌套属

  • 我希望从ES中获得聚合结果,例如,对于与术语匹配的文档,