使用Java高级Rest客户端进行Spring数据弹性搜索

Puj*_*rad 5 spring elasticsearch

我是Elastic search的初学者,并且正在寻找将Elastic Search与Spring Boot集成的最佳方法。

我不确定要使用以下哪个:

  • Spring数据弹性搜索

  • 笑话

  • Java高级休息客户端

谢谢

Val*_*Val 6

这取决于您要如何与ES交互。

如果您想在Elasticsearch之上使用ORM对文档执行CRUD操作,那么使用Spring Data Elasticsearch是可行的。但是请注意,Spring Data ES落后于最新的ES版本,因此根据您的ES版本,集成Spring Data ES(通过Spring Boot)可能会更加困难。

另外两个是更通用的客户端,这使您可以使用ES进行几乎所有操作。

JEST是一个不错的选择,并且由于Elasticsearch缺乏真正好的REST客户端,因此很长一段时间以来一直是我的最爱。

随着Elastic投入更多精力,Java高级REST客户端越来越受关注(因为传输客户端正在消失)。这个最大的优点是它是Elastic支持的官方REST客户端,并且与请求/响应DSL很好地集成在一起,而JEST则没有。

更新

要将REST客户端与Spring Boot集成在一起,您可以像其他任何依赖项一样进行操作,像这样,创建一个配置bean,然后在需要的地方自动关联该依赖项:

/** Configuration Bean */
@Configuration
public class ElasticsearchConfig {

    @Value("${elasticsearch.host}")
    private String host;

    @Value("${elasticsearch.port}")
    private int port;

    @Bean
    public RestClient restClient() {
        return RestClient.builder(new HttpHost(host, port)).build();
    }
}

// use the dependency in your other components/services, using dependency injection
@Autowired
private RestClient restClient;
Run Code Online (Sandbox Code Playgroud)