Hibernate搜索弹性搜索

时间:2018-05-18 04:33:10

标签: elasticsearch hibernate-search elasticsearch-5

我们之前使用过hibernate搜索,Lucene进行索引 为了提供更好的可扩展性,我们计划使用Elastic search 5(而不是Lucene)。

我有以下问题:

  1. 是否有明确的hibernatesearch java api来提供数据 弹性搜索?
  2. 使用Hibernate搜索是否有任何挑战     和弹性搜索一起?

2 个答案:

答案 0 :(得分:3)

  

是否有明确的hibernatesearch java api将数据提供给Elastic搜索?

AFAIK您只需使用标准的HibernateSearch API将数据发送到Elasticsearch而不是Lucene。这对你来说非常透明。在查询时,您可以同时执行这两项操作。使用标准的HibernateSearch查询或使用native elasticsearch queries

FullTextEntityManager fullTextEm = Search.getFullTextEntityManager(entityManager);
QueryDescriptor query = ElasticsearchQueries.fromJson(
      "{ 'query': { 'match' : { 'lastName' : 'Brand' } } }");
List<?> result = fullTextEm.createFullTextQuery(query, GolfPlayer.class).getResultList();

您也可以get an access to the Elasticsearch Client

  

一起使用Hibernate搜索和弹性搜索是否有任何挑战?

我认为Hibernate Search团队做得非常好。它包括列出the known limitations of the implementation等透明度。

答案 1 :(得分:0)

我相信可以使用JPA风格的Elastic Search,可以使用所有内置方法。

让我知道是否需要示例代码。

public interface YourClass extends ElasticsearchRepository<Object, String>{}

<dependency>
    <groupId>org.springframework.data</groupId>
    <artifactId>spring-data-elasticsearch</artifactId>
    <version>3.0.8.RELEASE</version>
</dependency>