我正在创建一个使用JPA和ElasticSearch的应用程序。我有一个关于如何构造和将它们连接在一起的问题。我有一个名为Newspaper
的实体。
我希望将其保留在数据库中,并在搜索引擎中对其进行索引。现在,对此有什么好处?您是否会将搜索存储库层注入使用JPA的新闻纸库中,然后在持久化后将其编入索引?
您是否会创建一个服务层并拥有一个服务bean类,您首先将其保存到数据库中,然后使用存储库对其进行索引?或者这可以用其他(更好的)方式完成吗?
答案 0 :(得分:2)
查看Hibernate Search的代码。它同时同步Lucene和db(如果需要,可以同步)。
或者只使用Hibernate Search。
答案 1 :(得分:1)
以下是我以前的工作:
在服务层中,在使用Hibernate持久化实体后,使用Jackson转换实体并将其发送到Elasticsearch。 当然,你可以在repo层(DAO Layer)中做到这一点,但我不太喜欢它。
顺便说一下,如果您使用的是Spring,请查看Spring factory Project for Elasticsearch。