将实体持久保存到数据库和搜索引擎

时间:2013-04-18 17:30:49

标签: java spring java-ee jpa elasticsearch

我正在创建一个使用JPA和ElasticSearch的应用程序。我有一个关于如何构造和将它们连接在一起的问题。我有一个名为Newspaper的实体。

我希望将其保留在数据库中,并在搜索引擎中对其进行索引。现在,对此有什么好处?您是否会将搜索存储库层注入使用JPA的新闻纸库中,然后在持久化后将其编入索引?

您是否会创建一个服务层并拥有一个服务bean类,您首先将其保存到数据库中,然后使用存储库对其进行索引?或者这可以用其他(更好的)方式完成吗?

2 个答案:

答案 0 :(得分:2)

查看Hibernate Search的代码。它同时同步Lucene和db(如果需要,可以同步)。

或者只使用Hibernate Search。

答案 1 :(得分:1)

以下是我以前的工作:

在服务层中,在使用Hibernate持久化实体后,使用Jackson转换实体并将其发送到Elasticsearch。 当然,你可以在repo层(DAO Layer)中做到这一点,但我不太喜欢它。

顺便说一下,如果您使用的是Spring,请查看Spring factory Project for Elasticsearch