2012-01-16 12 views
10

Me gustaría utilizar Lucene para proporcionar capacidad de búsqueda de texto completo en algunos de mis objetos java almacenados con EclipseLink en mi base de datos Postgresql.¿Cómo usar Lucene y JPA?

Vi que Hibernate tiene una solución integrada para Lucene llamada Hibernate Search, pero no puedo encontrar nada para EclipseLink. ¿Hay alguna solución para EclispeLink? si no, tengo una vaga idea de lo que debo hacer para manejar la indexación de Lucene al agregar y eliminar objetos, pero realmente agradecería que alguien me brinde un buen tutorial sobre este tema.

Gracias de antemano,

Thomas

Respuesta

6

Hubo brújula. Sin embargo, fue un proyecto de un solo hombre, y ese desarrollador dejó de trabajar en él en 2009. Pasó a otro proyecto de un solo hombre, llamado ElasticSearch.

Ese proyecto es un motor de búsqueda independiente, que compite con Apache Solr ... en lugar de una biblioteca integrada que compite con Apache Lucene e Hibernate Search.

Lamentablemente, realmente no conozco otras alternativas serias para integrar EclipseLink con Apache Lucene. EclipseLink ha acumulado mucha atención desde que Oracle cambió su nombre de TopLink, lo regaló y lo declaró como una implementación de referencia. EclipseLink MOXy es una fantástica implementación de JAX-B con algunas extensiones geniales. Sin embargo, para la interacción con la base de datos central ... Hibernate sigue siendo la implementación de JPA más madura y adoptada por una milla.

Por otro lado, la envoltura de Hibernate Search para Lucene admite usando Hibernate en el modo JPA 2 en lugar de su API clásica. En mi opinión, integra un poco más limpio con JPA en lugar de la antigua API de Hibernate de todos modos.

De modo que, a menos que esté utilizando extensiones patentadas de EclipseLink que lo tengan bloqueado, puede considerar cambiar su proveedor de JPA si desea una integración fácil de Lucene. Si sus clases de entidad ya tienen anotaciones JPA, debería ser una simple cuestión de actualizar su archivo persistence.xml (y su Maven POM, o como administre sus dependencias JAR).

+0

Gracias. Eché un vistazo a todo esto. Creo que voy a pasar a Hibernate de hecho ... También tiene soporte para consultas espaciales y muchas más que necesito y que desafortunadamente EclipseLink no admite. – Thomas

+0

Es 2017 y Elasticsearch es enorme. Encontré este tutorial, Elasticsearch e Hibernate, muy apropiado: https://www.youtube.com/watch?v=ufaI51o_7WI – Max