ACTUALIZADA el 9 de octubre de 2013
El transporte de Couchbase para Elastic Search ha sido actualizado para trabajar con Couchbase 2.2.0 y Elastic Search 0.90.5. Los pasos detallados a continuación se han actualizado para reflejar los nuevos números de versión.
Ya está disponible para su próxima aplicación de contenidos
Véase http://www.couchbase.com/blog/announcing-release-couchbase-plug-elasticsearch
Couchbase Server 2.0 añade potentes capacidades de indexación y consulta a través de su implementación map reduce distribuida. Pero además de eso, muchas aplicaciones, especialmente las de contenido, también necesitan capacidades de búsqueda de texto completo. Hoy lanzamos una versión preliminar para desarrolladores del complemento de transporte de Couchbase para Elastic Search. Este plugin utiliza la nueva funcionalidad Cross Data Center Replication que formará parte de Couchbase Server 2.0. Usando este nuevo transporte, puedes empezar a usar Couchbase y ElasticSearch fácilmente. Este blog explica como puedes tener esta integración funcionando en minutos.
Primeros pasos
Primero, necesitaremos un cluster de Couchbase. Para nuestros propósitos una sola instancia corriendo en tu máquina de desarrollo está bien. Descargue e instale el paquete adecuado para su plataforma. Utilizaré el paquete RPM de 64 bits de Couchbase Server 2.0.0:
Al pasar por el asistente de instalación, puede utilizar todos los ajustes predeterminados. Sin embargo, asegúrese de seleccionar el cubo de muestra "beer-sample" para seguir los ejemplos que se muestran a continuación.
Ahora estamos listos para instalar ElasticSearch. La versión actual del complemento funciona con ElasticSearch versión 0.90.5. Descargue este archivo y descomprima la instalación.
http://download.elasticsearch.org/elasticsearch/elasticsearch/elasticsearch-0.90.5.tar.gz
$ tar zxvf elasticsearch-0.90.5.tar.gz
Ahora que tenemos el núcleo de ElasticSearch, vamos a añadir algunos plugins.
El primero se llama "head". Proporciona una interfaz web básica a ElasticSearch para que podamos ver más fácilmente lo que está pasando. La instalación es tan simple como:
$ bin/plugin -install mobz/elasticsearch-head
-> Instalando mobz/elasticsearch-head...
Intentando https://github.com/mobz/elasticsearch-head/zipball/master... (suponiendo plugin del sitio)
Descargar .....................................DONE
Identificado como _site plugin, pasando a _site structure ...
Cabezal instalado
Ahora estamos listos para instalar el plugin de Couchbase. La instalación es tan sencilla como la de cualquier otro plugin.
-> Instalando transport-couchbase...
Probando http://packages.couchbase.com.s3.amazonaws.com/releases/elastic-search-adapter/1.2.0/elasticsearch-transport-couchbase-1.2.0.zip...
Descargar ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................
Instalado transport-couchbase
Ahora que el plug-in está instalado, tenemos que establecer la contraseña para el transporte Couchbase.
Esto inicia ElasticSearch y lo pone en segundo plano.
Configuración de ElasticSearch
Ahora que el plugin está instalado necesitamos instalar una plantilla de índice que establezca algunos buenos valores por defecto cuando se trabaja con Couchbase. Todas estas configuraciones pueden ser anuladas por tus propias plantillas, o actualizadas en base a cada índice.
{"ok":true, "reconocido":true}
Por último, para cada bucket de Couchbase en el que queramos buscar tendremos que crear un índice correspondiente en ElasticSearch.
{"ok":true, "reconocido":true}
Eso es todo, ahora estamos listos para configurar el lado Couchbase.
Configuración de Couchbase Server
El plugin de Couchbase para ElasticSearch funciona aprovechando la característica de Replicación entre Centros de Datos (XDCR) introducida en Couchbase Server 2.0. El primer paso es navegar a la pestaña Replicaciones en la interfaz de usuario. Ahora haz click en el botón Crear referencia de clúster botón. Nombre este cluster ElasticSearch y apuntar a la dirección 127.0.0.1:9091 (el puerto por defecto utilizado por este plug-in). El campo nombre de usuario debe ser Administrador y el campo contraseña debe coincidir con el valor que configuró en la sección anterior.
Por último, para iniciar la replicación pulse la tecla Crear réplica botón . Seleccione el botón muestra de cerveza el clúster remoto ElasticSearch y escriba el nombre del cubo remoto muestra de cerveza.
Una vez pulsada la tecla Replicar los datos comenzarán a transferirse.
Integración completa
Comprobemos el progreso de la transferencia visitando http://127.0.0.1:9200/_plugin/head/
El recuento de documentos aumentará en ElasticSearch y finalmente será mayor que el recuento de documentos que vemos en Couchbase. Esto está bien y sucede porque también estamos almacenando documentos de puntos de control de replicación. Ahora vamos a intentar ejecutar una búsqueda simple para verificar que los datos fueron indexados correctamente.
Busquemos una de mis cervezas favoritas abriendo la siguiente URL en su navegador: http://localhost:9200/beer-sample/_search?q=duchesse
Debería ver la salida JSON de abajo:
Vemos que la búsqueda coincide exactamente con un documento. Pero observe que en la sección de origen no vemos el contenido del documento de la cerveza. Esto se hace por diseño, cuando instalamos las plantillas de índice, deshabilitamos el almacenamiento del cuerpo completo del documento. La razón es simple, ya tenemos un acceso increíblemente rápido a los documentos en Couchbase. Volvamos al UI de Couchbase y miremos el documento devuelto por la búsqueda.
En la interfaz de usuario de Couchbase, ve a la pestaña Data Buckets y haz clic en el botón Documents junto al bucket beer-sample. En el campo ID del documento pegaremos el ID devuelto por la búsqueda, 110fa6d6b2.
¡Éxito! Esta es la cerveza que estábamos buscando.
Próximos pasos
En este punto tienes tu Cluster Couchbase replicando datos continuamente a tu Cluster ElasticSearch. Sólo hemos mostrado una consulta ElasticSearch muy básica, consultas mucho más complejas son posibles.
Para más información:
- Descargar el complemento de Couchbase para ElasticSearch
- Complemento de Couchbase para ElasticSearch en Github
- Para obtener más información sobre las consultas de ElasticSearch, consulte el documento Guía de ElasticSearch
¿Es posible hacer esta configuración sin "interfaz de usuario y haga clic en el escenario", pero con CLI o API para obtener un aprovisionamiento automático de una configuración CB + ES?
Sí, creo que todas estas tareas se pueden hacer sin "UI y click". No estoy seguro sobre la configuración inicial de Couchbase, para eso puedes preguntar en los foros de Couchbase: https://forums.couchbase.com/
Después de ese punto, la configuración XDCR para Elasticsearch se puede hacer usando los comandos couchbase-cli descritos aquí:
http://docs.couchbase.com/admi…
Consulte los comandos xdcr-setup y xdcr-replicate.
Todas las operaciones de Elasticsearch se pueden realizar a través de su API REST, tendrás que consultar su documentación para más detalles.
Gracias por tu respuesta, también he encontrado la API http://docs.couchbase.com/admi…
[...] la última versión del complemento de búsqueda de texto completo a través de nuestra página de conectores, y asegúrese de leer la entrada de blog actualizada de Marty Schloch para conocer los pasos detallados sobre cómo instalar y utilizar el [...].
[...] Se eligió ElasticSearch para gestionar los requisitos de búsqueda de texto completo de la aplicación. ElasticSearch combina una gran capacidad de consulta con una excelente capacidad de agrupación, lo que lo convierte en un gran complemento para Couchbase. La integración entre Couchbase Server y ElasticSearch fue proporcionada por el plug-in Couchbase Transport. Este transporte utiliza la característica Cross Data Center Replication de Couchbase Server 2.0 para transferir de forma fiable todas las mutaciones de documentos al índice de ElasticSearch (Más información sobre esto aquí). [...]