首页 > 解决方案 > 休眠搜索 Elasticsearch

问题描述

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

我有以下问题:

  1. 是否有任何明确的 hibernatesearch java api 将数据提供给 Elasticsearch?
  2. 一起使用 Hibernate 搜索和 Elasticsearch 有什么挑​​战吗?

标签: elasticsearchhibernate-searchelasticsearch-5

解决方案


是否有任何明确的 hibernatesearch java api 将数据提供给弹性搜索?

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

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

您还可以访问 Elasticsearch Client

一起使用 Hibernate 搜索和弹性搜索有什么挑战吗?

我认为 Hibernate Search 团队做得很好。它包括透明度,例如列出实施的已知限制


推荐阅读