如何使用Lucene和JPA?

Tho*_*mas 11 lucene jpa eclipselink

我想使用Lucene为我的Postgresql数据库中存储了EclipseLink的一些java对象提供全文搜索功能.

我看到Hibernate为Lucene提供了一个名为Hibernate Search的集成解决方案,但是我找不到EclipseLink的任何东西.EclispeLink有解决方案吗?如果不是我对添加和删除对象时应该如何处理Lucene索引有一个模糊的想法,但我真的很感激,如果有人可以提供一个关于这个主题的很好的教程.

提前致谢,

托马斯

Ste*_*ins 7

有WAS指南针.然而,这是一个单人项目,开发人员在2009年停止了它的工作.他转向另一个名为ElasticSearch的单人项目.

该项目是一个独立的搜索引擎,与Apache Solr竞争......而不是与Apache Lucene和Hibernate Search竞争的嵌入式库.

不幸的是,我并不知道将EclipseLink与Apache Lucene集成的任何其他严肃的替代方案.自从Oracle从TopLink更改名称,将其放弃并宣布它为参考实现以来,EclipseLink已经收集了大量的思想.EclipseLink MOXy是一个非常棒的JAX-B实现,带有一些非常酷的扩展.但是,对于核心数据库交互...... Hibernate仍然是更成熟和采用JPA实现一英里.

在另一方面,Hibernate Search的包装器的Lucene 在JPA 2模式,而不是其经典的API使用Hibernate支持.在我看来,无论如何,它都集成了一些清晰的JPA而不是旧的Hibernate API.

因此,除非您使用锁定的专有EclipseLink扩展,否则如果您想轻松实现Lucene集成,可以考虑更换JPA提供程序.如果您的实体类已经过JPA注释,那么更新您的persistence.xml文件(以及您的Maven POM,或者您管理JAR依赖项)应该是一件简单的事情.