Muestra las diferencias entre dos versiones de la página.
Ambos lados, revisión anterior Revisión previa Próxima revisión | Revisión previa | ||
simo:documentos:tecnicos:hibernate [2017/10/18 00:51] lgomez [Referencias] |
simo:documentos:tecnicos:hibernate [2017/10/18 00:58] (actual) lgomez |
||
---|---|---|---|
Línea 7: | Línea 7: | ||
* **Hibernate Search:** Esta librería permite la creación y explotación de índices Full Text usando Apache Lucene sobre las entidades del modelo de dominio, mediante el uso de anotaciones específicas es posible configurar por entidad los campos indexados, así como características avanzadas como filtros, analizadores, tokenizadores, y puentes (Bridges). El motor de Hibernate Search puede ser complementado con otras librerías mediante archivos de configuración en dos aspectos principales: | * **Hibernate Search:** Esta librería permite la creación y explotación de índices Full Text usando Apache Lucene sobre las entidades del modelo de dominio, mediante el uso de anotaciones específicas es posible configurar por entidad los campos indexados, así como características avanzadas como filtros, analizadores, tokenizadores, y puentes (Bridges). El motor de Hibernate Search puede ser complementado con otras librerías mediante archivos de configuración en dos aspectos principales: | ||
- | + | * **Directorios:** Hibernate Search utiliza el concepto de directorio como un repositorio de índices, en este sentido es posible usar diversos tipos de almacenamiento de índices, por ejemplo, File System, Infinispan, bases de datos relacionales y bases de datos no relacionales como MongoDB. En el proyecto en particular se están utilizando directorios Infinispan que permiten mantener los índices en memoria para aumentar el rendimiento (a costa del consumo de memoria) pero que también están respaldados por copias en disco que perminten reconstruir los índices en memoria tras una terminación de la máquina virtual Java sobre la cual se ejecuta el servidor Tomcat. Inicialmente se tenía una configuración Infinispan en cluster que permitía la sincronización automática de índices entre los nodos del cluster SIMO, usando JGroups como medio de transporte, sin embargo esta configuración fue cambiada para evitar problemas de concurrencia ocasionados por las demoras en el envío de datos entre los nodos del cluster, es decir, por los mecanismos de sincronización de Infinispan. En la actualidad se tienen directorios tipo infinispan aislados en cada uno de los nodos del cluster SIMO. la sincronización de índices entre los nodos debe hacerse manualmente. Este proceso se ilustra en la siguiente página: [[simo:documentos:tecnicos:reindexamiento| Reindexamiento]] | |
- | * Directorios: Hibernate Search utiliza el concepto de directorio como un repositorio de índices, en este sentido es posible usar diversos tipos de almacenamiento de índices, por ejemplo, File System, Infinispan, bases de datos relacionales y bases de datos no relacionales como MongoDB. En el proyecto en particular se están utilizando directorios Infinispan que permiten mantener los índices en memoria para aumentar el rendimiento (a costa del consumo de memoria) pero que también están respaldados por copias en disco que perminten reconstruir los índices en memoria tras una terminación de la máquina virtual Java sobre la cual se ejecuta el servidor Tomcat. Inicialmente se tenía una configuración Infinispan en cluster que permitía la sincronización automática de índices entre los nodos del cluster SIMO, usando JGroups como medio de transporte, sin embargo esta configuración fue cambiada para evitar problemas de concurrencia ocasionados por las demoras en el envío de datos entre los nodos del cluster, es decir, por los mecanismos de sincronización de Infinispan. En la actualidad se tienen directorios tipo infinispan aislados en cada uno de los nodos del cluster SIMO. la sincronización de índices entre los nodos debe hacerse manualmente. Este proceso se ilustra en la siguiente página: [[simo:documentos:tecnicos:reindexamiento| Reindexamiento]] | + | * **Backends:** Para Hibernate Search, los backends son los agentes encargados de realizar los procesos de indexación y búsqueda. Existen diversos tipos de backends, entre los cuales están |
- | + | ||
- | * Backends: Para Hibernate Search, los backends son los agentes encargados de realizar los procesos de indexación y búsqueda. Existen diversos tipos de backends, entre los cuales están | + | |
* Lucene: Utiliza el motor Lucene directamente | * Lucene: Utiliza el motor Lucene directamente | ||
* JMS: Utilizado en clusters para controlar concurrencia mediante el uso de una cola de mensajes en el servidor maestro el cual se encarga del indexamiento | * JMS: Utilizado en clusters para controlar concurrencia mediante el uso de una cola de mensajes en el servidor maestro el cual se encarga del indexamiento |