我正在创建一个使用 JPA 和 ElasticSearch 的应用程序。我有一个关于如何将它们构建和连接在一起的问题。我有一个名为Newspaper
.
我想将它保存在数据库中,并在搜索引擎中对其进行索引。现在,有什么好的方法呢?您是否会将搜索存储库层注入使用 JPA 的报纸存储库,然后在持久化后对其进行索引?
您是否会创建一个服务层并拥有一个服务 bean 类,您首先将其保存到数据库中,然后使用存储库对其进行索引?或者这可以通过其他(更好的)方式来完成吗?
我正在创建一个使用 JPA 和 ElasticSearch 的应用程序。我有一个关于如何将它们构建和连接在一起的问题。我有一个名为Newspaper
.
我想将它保存在数据库中,并在搜索引擎中对其进行索引。现在,有什么好的方法呢?您是否会将搜索存储库层注入使用 JPA 的报纸存储库,然后在持久化后对其进行索引?
您是否会创建一个服务层并拥有一个服务 bean 类,您首先将其保存到数据库中,然后使用存储库对其进行索引?或者这可以通过其他(更好的)方式来完成吗?
查看来自 Hibernate Search 的代码。它同时同步 w Lucene 和数据库(如果需要,也可以异步)。
或者只是使用休眠搜索。
这是我在以前的工作中所做的:
在服务层,使用 Hibernate 持久化实体后,使用 Jackson 转换实体并将其发送到 Elasticsearch。当然,你可以在 repo 层(DAO 层)中这样做,但我不太喜欢它。
顺便说一句,如果您使用的是 Spring,请查看Spring factory Project for Elasticsearch。