Как использовать Lucene и JPA?

Я хотел бы использовать Lucene для обеспечения возможности полнотекстового поиска для некоторых из моих java-объектов, хранящихся с помощью EclipseLink в моей базе данных Postgresql.

Я видел, что у Hibernate есть интегрированное решение для Lucene под названием Hibernate Search, но я ничего не могу найти для EclipseLink. Есть ли решение для EclispeLink? если нет, то у меня есть смутное представление о том, что я должен делать для обработки индексации Lucene при добавлении и удалении объектов, но я был бы очень признателен, если бы кто-нибудь мог предоставить мне хороший учебник по этой теме.

Заранее спасибо,

Томас


person Thomas    schedule 16.01.2012    source источник


Ответы (1)


БЫЛ КОМПАС. Однако это был проект одного человека, и этот разработчик прекратил работу над ним еще в 2009 году. Он перешел к другому проекту одного человека под названием ElasticSearch.

Этот проект представляет собой автономную поисковую систему, конкурирующую с Apache Solr... а не встроенную библиотеку, конкурирующую с Apache Lucene и Hibernate Search.

К сожалению, я не знаю других серьезных альтернатив для интеграции EclipseLink с Apache Lucene. EclipseLink привлек большое внимание с тех пор, как Oracle изменила свое название с TopLink, отдала его и объявила эталонной реализацией. EclipseLink MOXy — это фантастическая реализация JAX-B с некоторыми действительно классными расширениями. Однако для взаимодействия с основной базой данных ... Hibernate по-прежнему является более зрелой и адаптированной реализацией JPA на милю.

С другой стороны, оболочка Hibernate Search для Lucene действительно поддерживает использование Hibernate в режиме JPA 2, а не его классический API. На мой взгляд, в любом случае он лучше интегрируется с JPA, чем со старым Hibernate API.

Поэтому, если вы не используете проприетарные расширения EclipseLink, которые заблокировали вас, вы можете рассмотреть возможность замены вашего поставщика JPA, если вам нужна простая интеграция с Lucene. Если ваши классы сущностей уже аннотированы JPA, это должно быть простым вопросом обновления вашего файла persistence.xml (и вашего Maven POM, или каким-либо образом вы управляете своими зависимостями JAR).

person Steve Perkins    schedule 23.09.2012
comment
Спасибо. Я посмотрел на все это. Я думаю, что действительно перейду на Hibernate... Он также поддерживает пространственные запросы и многое другое, что мне нужно и что EclipseLink, к сожалению, не поддерживает. - person Thomas; 24.09.2012
comment
Сейчас 2017 год, и Elasticsearch огромен. Я нашел это руководство, Elasticsearch и Hibernate, очень подходящим: youtube.com/watch?v=ufaI51o_7WI< /а> - person Max; 13.05.2017