我们之前使用过hibernate搜索,Lucene进行索引 为了提供更好的可扩展性,我们计划使用Elastic search 5(而不是Lucene)。
我有以下问题:
答案 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>