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

时间:2018-03-08 12:02:59

标签: spring elasticsearch

我是弹性搜索的初学者,正在寻找将弹性搜索与Spring启动集成的最佳方法。

我不确定使用以下哪项: -

  • 弹簧数据弹性搜索

  • JEST

  • Java高级休息客户端

由于

1 个答案:

答案 0 :(得分:3)

这取决于您希望如何与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;