我是弹性搜索的初学者,正在寻找将弹性搜索与Spring启动集成的最佳方法。
我不确定使用以下哪项: -
弹簧数据弹性搜索
JEST
由于
答案 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;