ATUALIZADO em 9 de outubro de 2013
O Couchbase Transport for Elastic Search foi atualizado para funcionar com o Couchbase 2.2.0 e o Elastic Search 0.90.5. As etapas detalhadas abaixo foram atualizadas para refletir os números das novas versões.
Agora disponível para seu próximo aplicativo de conteúdo
Veja http://www.couchbase.com/blog/announcing-release-couchbase-plug-elasticsearch
O Couchbase Server 2.0 acrescenta recursos avançados de indexação e consulta por meio de sua implementação de redução de mapas distribuídos. Mas, além disso, muitos aplicativos, especialmente os de conteúdo, também precisam de recursos de pesquisa de texto completo. Hoje estamos lançando uma prévia para desenvolvedores do Couchbase Transport Plugin for Elastic Search. Esse plug-in usa a nova funcionalidade Cross Data Center Replication que fará parte do Couchbase Server 2.0. Usando esse novo transporte, você pode começar a usar o Couchbase e o ElasticSearch com facilidade. Este blog explica como você pode colocar essa integração em funcionamento em minutos.
Primeiros passos
Primeiro, precisaremos de um cluster do Couchbase. Para nossos propósitos, uma única instância em execução em sua máquina de desenvolvimento é suficiente. Faça o download e instale o pacote correto para sua plataforma. Usarei o pacote RPM de 64 bits do Couchbase Server 2.0.0:
Ao passar pelo assistente de instalação, você pode usar todas as configurações padrão. No entanto, certifique-se de selecionar o bucket de amostra "beer-sample" para acompanhar os exemplos abaixo.
Agora estamos prontos para instalar o ElasticSearch. A versão atual do plug-in funciona com ElasticSearch versão 0.90.5. Faça o download desse arquivo e descompacte a instalação.
http://download.elasticsearch.org/elasticsearch/elasticsearch/elasticsearch-0.90.5.tar.gz
$ tar zxvf elasticsearch-0.90.5.tar.gz
Agora que temos o núcleo do ElasticSearch, vamos adicionar alguns plug-ins.
O primeiro é chamado de "head". Ele fornece uma interface de usuário básica da Web para o ElasticSearch para que possamos ver mais facilmente o que está acontecendo. A instalação é tão simples quanto:
$ bin/plugin -install mobz/elasticsearch-head
-> Instalando mobz/elasticsearch-head...
Tentando https://github.com/mobz/elasticsearch-head/zipball/master... (supondo que o plugin do site)
Download do site .....................................DONE
Identificado como um plugin _site, movendo-se para a estrutura _site ...
Cabeçote instalado
Agora estamos prontos para instalar o plug-in do Couchbase. A instalação é tão simples quanto a de qualquer outro plug-in.
-> Instalando o transport-couchbase...
Tentando http://packages.couchbase.com.s3.amazonaws.com/releases/elastic-search-adapter/1.2.0/elasticsearch-transport-couchbase-1.2.0.zip...
Download do site ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................
Instalação do transport-couchbase
Agora que o plug-in está instalado, precisamos definir a senha para o transporte do Couchbase.
Isso inicia o ElasticSearch e o coloca em segundo plano.
Configuração do ElasticSearch
Agora que o plug-in está instalado, precisamos instalar um modelo de índice que defina alguns bons padrões ao trabalhar com o Couchbase. Todas essas configurações podem ser substituídas por seus próprios modelos ou atualizadas por índice.
{"ok":true, "acknowledged":true}
Por fim, para cada bucket do Couchbase que quisermos pesquisar, precisaremos criar um índice correspondente no ElasticSearch.
{"ok":true, "acknowledged":true}
É isso, agora estamos prontos para configurar o lado do Couchbase.
Configuração do servidor Couchbase
O plug-in do Couchbase para o ElasticSearch funciona aproveitando o recurso Cross Datacenter Replication (XDCR) introduzido no Couchbase Server 2.0. A primeira etapa é navegar até a guia Replications (Replicações) na UI. Agora, clique no ícone Criar referência de cluster botão. Dê um nome a esse cluster ElasticSearch e apontá-lo para o endereço 127.0.0.1:9091 (a porta padrão usada por esse plug-in). O campo de nome de usuário deve ser Administrator e o campo de senha deve corresponder ao valor configurado na seção anterior.
Por fim, para iniciar a replicação, pressione o botão Criar replicação botão. Selecione o botão amostra de cerveja o cluster remoto ElasticSearch e digite o nome do bucket remoto amostra de cerveja.
Quando você pressiona o botão Replicar os dados começarão a ser transferidos.
Integração completa
Vamos verificar o andamento da transferência visitando http://127.0.0.1:9200/_plugin/head/
A contagem de documentos aumentará no ElasticSearch e, por fim, será maior do que a contagem de documentos que vemos no Couchbase. Isso não tem problema e acontece porque também estamos armazenando documentos de ponto de verificação de replicação. Agora vamos tentar executar uma busca simples para verificar se os dados foram indexados corretamente.
Vamos pesquisar uma de minhas cervejas favoritas abrindo o seguinte URL em seu navegador: http://localhost:9200/beer-sample/_search?q=duchesse
Você deverá ver a saída JSON abaixo:
Vemos que a pesquisa correspondeu exatamente a um documento. Mas observe que, na seção de origem, não vemos o conteúdo do documento da cerveja. Isso é feito por design, pois quando instalamos os modelos de índice, desativamos o armazenamento do corpo completo do documento. O motivo é simples: já temos um acesso incrivelmente rápido aos documentos no Couchbase. Voltemos à interface do usuário do Couchbase e vejamos o documento retornado pela pesquisa.
Na interface do usuário do Couchbase, navegue até a guia Data Buckets e clique no botão Documents (Documentos) ao lado do bucket beer-sample (amostra de cerveja). No campo ID do documento, colaremos o ID retornado pela pesquisa, 110fa6d6b2.
Sucesso! Esta é a cerveja que estávamos procurando.
Próximas etapas
Nesse ponto, você tem o cluster do Couchbase replicando continuamente os dados para o cluster do ElasticSearch. Mostramos apenas uma consulta muito básica do ElasticSearch, mas é possível fazer consultas muito mais complexas.
Para obter mais informações:
- Faça o download do plug-in do Couchbase para o ElasticSearch
- Plug-in do Couchbase para ElasticSearch no Github
- Para obter mais detalhes sobre as consultas do ElasticSearch, consulte a seção Guia do ElasticSearch
É possível fazer essa configuração sem \"UI e clicar no cenário\", mas com CLI ou API para obter um provisionamento automático de uma configuração CB + ES?
Sim, acredito que todas essas tarefas podem ser realizadas sem \"UI e clique\". Não tenho certeza sobre a configuração inicial do Couchbase. Para isso, talvez você queira perguntar nos fóruns do Couchbase: https://forums.couchbase.com/
Depois desse ponto, a configuração do XDCR para o Elasticsearch pode ser feita usando os comandos couchbase-cli descritos aqui:
http://docs.couchbase.com/admi…
Consulte os comandos xdcr-setup e xdcr-replicate.
Todas as operações do Elasticsearch podem ser realizadas por meio da REST API, mas é preciso consultar a documentação para obter detalhes.
Obrigado por sua resposta, também encontrei a API http://docs.couchbase.com/admi…
[...] a versão mais recente do plug-in de pesquisa de texto completo por meio de nossa página de conectores, e não deixe de ler a postagem atualizada do blog de Marty Schloch para obter as etapas detalhadas sobre como instalar e usar o plug-in [...]
[...] O ElasticSearch foi escolhido para lidar com os requisitos de pesquisa de texto completo do aplicativo. O ElasticSearch combina recursos avançados de consulta com excelentes recursos de agrupamento, o que o torna uma ótima combinação com o Couchbase. A integração entre o Couchbase Server e o ElasticSearch foi fornecida pelo plug-in Couchbase Transport. Esse transporte usa o recurso Cross Data Center Replication do Couchbase Server 2.0 para transferir de forma confiável todas as mutações de documentos para o índice do ElasticSearch (saiba mais sobre isso aqui). [...]