{"id":2289,"date":"2016-06-04T05:14:50","date_gmt":"2016-06-04T05:14:49","guid":{"rendered":"https:\/\/www.couchbase.com\/blog\/?p=2289"},"modified":"2024-09-12T01:29:35","modified_gmt":"2024-09-12T08:29:35","slug":"multi-node-full-text-search","status":"publish","type":"post","link":"https:\/\/www.couchbase.com\/blog\/pt\/multi-node-full-text-search\/","title":{"rendered":"Pesquisa de texto completo em v\u00e1rios n\u00f3s no Couchbase 4.5 Beta"},"content":{"rendered":"<h2>Amplie a pesquisa de texto completo no Couchbase Server 4.5 Beta<\/h2>\n<p>O Couchbase Server 4.5 inclui um novo servi\u00e7o, <a href=\"https:\/\/www.couchbase.com\/blog\/pt\/couchbase-4.5-developer-preview-couchbase-fts\/\">pesquisa de texto completo (FTS) <\/a>. Neste blog, falarei sobre como o FTS \u00e9 dimensionado entre n\u00f3s, como replicar \u00edndices e como ele se comporta em um rebalanceamento.<\/p>\n<p>Desde o lan\u00e7amento do Couchbase Server 4.5 Developer Preview, a equipe do FTS tem estado ocupada.  A vers\u00e3o beta do Couchbase Server 4.5 n\u00e3o apenas elimina v\u00e1rios bugs do FTS, mas tamb\u00e9m inclui <a href=\"https:\/\/developer.couchbase.com\/documentation\/server\/4.5\/fts\/fts-whats-new.html#topic_jzy_p5v_vv\">muitos aprimoramentos importantes no FTS<\/a>:<\/p>\n<ul>\n<li>Desempenho de indexa\u00e7\u00e3o 12x mais r\u00e1pido<\/li>\n<li>melhores estat\u00edsticas<\/li>\n<li>suporte para autentica\u00e7\u00e3o e controle de acesso baseado em fun\u00e7\u00e3o<\/li>\n<li>Registro de auditoria de eventos do administrador<\/li>\n<li>suporte para resultados parciais<\/li>\n<\/ul>\n<p>O novo recurso de pesquisa mais not\u00e1vel na vers\u00e3o beta do 4.5 \u00e9 a capacidade de executar o servi\u00e7o FTS em v\u00e1rios n\u00f3s.  Voc\u00ea pode test\u00e1-lo hoje com a vers\u00e3o beta, e o que voc\u00ea leu aqui ainda se aplicar\u00e1 quando o Couchbase Server 4.5 for lan\u00e7ado no GA.<\/p>\n<p>Deixe-me esclarecer a isen\u00e7\u00e3o de responsabilidade agora mesmo: \u00a0<strong>O FTS continuar\u00e1 sendo uma pr\u00e9via para desenvolvedores na vers\u00e3o GA do Couchbase Server 4.5, portanto, n\u00e3o o execute em um servidor de produ\u00e7\u00e3o<\/strong>. H\u00e1 muitas funcionalidades realmente excelentes no FTS, mas ainda n\u00e3o marcamos todas as caixas de sele\u00e7\u00e3o de testes de desempenho e sistema em nossa lista de tarefas. O lado positivo \u00e9 que isso nos d\u00e1 a oportunidade de abordar alguns dos coment\u00e1rios que estamos recebendo dos usu\u00e1rios dos primeiros testes.  (Tem coment\u00e1rios? Sinta-se \u00e0 vontade para me enviar um e-mail diretamente para will dot gardella at couchbase dot com)<\/p>\n<p>Ok, vamos ao que interessa. Voc\u00ea pode usar o servi\u00e7o de pesquisa para indexar e pesquisar texto em seus documentos do Couchbase sem depender de um pacote de pesquisa de terceiros. O novo servi\u00e7o de pesquisa une os servi\u00e7os de dados, \u00edndice e consulta e pode ser gerenciado como outros servi\u00e7os para fins de dimensionamento multidimensional (MDS).  Observe que, diferentemente do N1QL, o servi\u00e7o de pesquisa faz consultas de texto completo e indexa\u00e7\u00e3o em um \u00fanico servi\u00e7o.<\/p>\n<h2>Servi\u00e7o de pesquisa distribu\u00edda - sob o cap\u00f4<span style=\"font-size: 13px; line-height: 1.6em;\">\u00a0<\/span><\/h2>\n<p>Na maioria das vezes, os \u00edndices de pesquisa distribu\u00edda \"simplesmente funcionam\": o servi\u00e7o Couchbase Full Text Search aproveita o novo hardware \u00e0 medida que voc\u00ea adiciona n\u00f3s, e os \u00edndices de texto completo sofrem falhas e s\u00e3o rebalanceados junto com o servi\u00e7o de dados. Esta se\u00e7\u00e3o fala sobre os mecanismos que permitem isso, que voc\u00ea normalmente n\u00e3o precisa conhecer como usu\u00e1rio, mas que \u00e0s vezes encontrar\u00e1, como nos resultados parciais de pesquisa (abordados mais adiante).<\/p>\n<p>Desde o in\u00edcio, a pesquisa de texto completo foi projetada para distribuir \u00edndices de texto entre os n\u00f3s, da mesma forma que o servi\u00e7o de dados distribui dados em buckets.  Se voc\u00ea entender a fun\u00e7\u00e3o <a href=\"https:\/\/developer.couchbase.com\/documentation\/server\/4.5\/concepts\/distributed-data-management.html\">buckets e vBuckets<\/a>Se voc\u00ea tem um bom modelo mental para entender isso.  O bucket \u00e9 uma unidade l\u00f3gica de conten\u00e7\u00e3o de dados que \u00e9 f\u00e1cil de trabalhar, e o vBucket \u00e9 uma parte f\u00edsica dos dados que est\u00e3o em um bucket, que vive em um n\u00f3 espec\u00edfico em um cluster. Quando voc\u00ea ativa a replica\u00e7\u00e3o em um bucket, o Couchbase Server cria c\u00f3pias de todos os vBuckets necess\u00e1rios que comp\u00f5em esse bucket. O Couchbase Server tamb\u00e9m garante que o layout desses vBuckets seja ideal, o que, por si s\u00f3, \u00e9 um t\u00f3pico complexo, mas, por enquanto, voc\u00ea pode pensar nisso como o equil\u00edbrio dos locais dos vBuckets para que eles sejam distribu\u00eddos uniformemente entre os n\u00f3s.<\/p>\n<p>O FTS funciona de forma semelhante. Os \u00edndices de texto completo s\u00e3o automaticamente divididos em fragmentos chamados <strong><em>pindexes<\/em><\/strong>que \u00e9 a abrevia\u00e7\u00e3o de \"\u00edndices particionados\" ou \"\u00edndices f\u00edsicos\", dependendo de quem voc\u00ea perguntar.  Assim como um bucket, um \u00edndice de texto completo \u00e9 um conceito l\u00f3gico. O pindex \u00e9 a implementa\u00e7\u00e3o f\u00edsica do \u00edndice, assim como o vBucket \u00e9 a implementa\u00e7\u00e3o f\u00edsica do bucket.<\/p>\n<p>Os pindexes s\u00e3o distribu\u00eddos fisicamente pelos n\u00f3s do Couchbase que executam o servi\u00e7o de pesquisa, por mais numerosos que sejam. Na visualiza\u00e7\u00e3o para desenvolvedores, era um \u00fanico n\u00f3, mas essa restri\u00e7\u00e3o foi suspensa na vers\u00e3o Beta. Nos exemplos abaixo, usaremos apenas dois n\u00f3s para manter a simplicidade.<\/p>\n<h2>Adi\u00e7\u00e3o de um n\u00f3 de pesquisa<\/h2>\n<p>\u00c9 hora de colocar a m\u00e3o na massa. Se voc\u00ea tiver o Couchbase Server 4.5 Beta ou mais recente, estar\u00e1 pronto para come\u00e7ar. Voc\u00ea precisar\u00e1 configurar mais de um n\u00f3, portanto, prepare uma VM. Para este exemplo, vou usar duas VMs do Windows Server 2012.<\/p>\n<p>Vamos come\u00e7ar com um \u00fanico n\u00f3 executando o servi\u00e7o de pesquisa. Criaremos um \u00edndice simples nos documentos de hotel do bucket de amostra de viagem. Se voc\u00ea n\u00e3o tiver a amostra de viagem instalada, poder\u00e1 obt\u00ea-la clicando em <em>Configura\u00e7\u00f5es<\/em> &gt; <em>Baldes de amostra<\/em> e, em seguida, marcar a caixa.<\/p>\n<p>Para fins desta demonstra\u00e7\u00e3o, qualquer \u00edndice de texto completo serve. Criei um \u00edndice em type=\"hotel\" (n\u00e3o se esque\u00e7a de desativar o mapeamento de tipo padr\u00e3o) com dois campos, \"name\" e \"description\", store = true e \"index only specified fields\" (indexar somente os campos especificados), apenas para que o \u00edndice seja constru\u00eddo rapidamente.<\/p>\n<p>Aqui est\u00e1 o comando curl, caso voc\u00ea tenha alergia \u00e0 interface do usu\u00e1rio:<\/p>\n<pre><code class=\"language-bash\">curl -XPUT -H \"Content-Type: application\/json\" \r\n https:\/\/localhost:8094\/api\/index\/hotel \r\n -d '{\r\n  \"type\": \"fulltext-index\",\r\n  \"name\": \"hotel\",\r\n  \"sourceType\": \"couchbase\",\r\n  \"sourceName\": \"travel-sample\",\r\n  \"planParams\": {\r\n    \"maxPartitionsPerPIndex\": 32,\r\n    \"numReplicas\": 0,\r\n    \"hierarchyRules\": null,\r\n    \"nodePlanParams\": null,\r\n    \"pindexWeights\": null,\r\n    \"planFrozen\": false\r\n  },\r\n  \"params\": {\r\n    \"mapping\": {\r\n      \"byte_array_converter\": \"json\",\r\n      \"default_analyzer\": \"standard\",\r\n      \"default_datetime_parser\": \"dateTimeOptional\",\r\n      \"default_field\": \"_all\",\r\n      \"default_mapping\": {\r\n        \"display_order\": \"1\",\r\n        \"dynamic\": true,\r\n        \"enabled\": false\r\n      },\r\n      \"default_type\": \"_default\",\r\n      \"index_dynamic\": true,\r\n      \"store_dynamic\": false,\r\n      \"type_field\": \"type\",\r\n      \"types\": {\r\n        \"hotel\": {\r\n          \"display_order\": \"0\",\r\n          \"dynamic\": false,\r\n          \"enabled\": true,\r\n          \"properties\": {\r\n            \"description\": {\r\n              \"dynamic\": false,\r\n              \"enabled\": true,\r\n              \"fields\": [\r\n                {\r\n                  \"analyzer\": \"\",\r\n                  \"display_order\": \"0\",\r\n                  \"include_in_all\": true,\r\n                  \"include_term_vectors\": true,\r\n                  \"index\": true,\r\n                  \"name\": \"description\",\r\n                  \"store\": true,\r\n                  \"type\": \"text\"\r\n                }\r\n              ]\r\n            },\r\n            \"name\": {\r\n              \"dynamic\": false,\r\n              \"enabled\": true,\r\n              \"fields\": [\r\n                {\r\n                  \"analyzer\": \"\",\r\n                  \"display_order\": \"1\",\r\n                  \"include_in_all\": true,\r\n                  \"include_term_vectors\": true,\r\n                  \"index\": true,\r\n                  \"name\": \"name\",\r\n                  \"store\": true,\r\n                  \"type\": \"text\"\r\n                }\r\n              ]\r\n            }\r\n          }\r\n        }\r\n      }\r\n    },\r\n    \"store\": {\r\n      \"kvStoreName\": \"forestdb\"\r\n    }\r\n  },\r\n  \"sourceParams\": {\r\n    \"clusterManagerBackoffFactor\": 0,\r\n    \"clusterManagerSleepInitMS\": 0,\r\n    \"clusterManagerSleepMaxMS\": 2000,\r\n    \"dataManagerBackoffFactor\": 0,\r\n    \"dataManagerSleepInitMS\": 0,\r\n    \"dataManagerSleepMaxMS\": 2000,\r\n    \"feedBufferAckThreshold\": 0,\r\n    \"feedBufferSizeBytes\": 0\r\n  }\r\n}'\r\n<\/code><\/pre>\n<p>Quando terminar, voc\u00ea pode pesquisar uma palavra comum, como \"Inn\", para ter certeza de que as coisas est\u00e3o funcionando.<\/p>\n<p style=\"color: #333333; line-height: 20.8px; text-align: left;\"><span style=\"line-height: 20.8px;\">Ao dar uma olhada no diret\u00f3rio de dados do Couchbase, voc\u00ea ver\u00e1 um <em>@fts<\/em>\u00a0diret\u00f3rio. Abra-o e voc\u00ea ver\u00e1 v\u00e1rios diret\u00f3rios contendo os pindexes.<\/span><\/p>\n<p style=\"color: #333333; line-height: 20.8px; text-align: left;\"><img decoding=\"async\" src=\"\/wp-content\/original-assets\/2016\/june\/multi-node-full-text-search\/screen-shot-2016-06-03-at-7.23.26-pm.png\" alt=\"pindexes in the data directory\" \/><\/p>\n<p style=\"color: #333333; line-height: 20.8px; text-align: left;\"><img decoding=\"async\" src=\"\/wp-content\/original-assets\/2016\/june\/multi-node-full-text-search\/screen-shot-2016-06-03-at-7.24.07-pm.png\" alt=\"pindexes\" \/><\/p>\n<h2>Segundo n\u00f3 de pesquisa e rebalanceamento<\/h2>\n<p>V\u00e1 em frente e adicione um segundo n\u00f3 ao cluster, como faria normalmente. <strong>N\u00e3o se esque\u00e7a de marcar a caixa para ativar o servi\u00e7o de pesquisa.<\/strong><\/p>\n<p><img decoding=\"async\" src=\"\/wp-content\/original-assets\/2016\/june\/multi-node-full-text-search\/screen-shot-2016-06-03-at-8.07.16-pm.png\" alt=\"add a node\" \/><\/p>\n<p>Quando terminar, voc\u00ea ver\u00e1 uma tela parecida com esta, mostrando um servidor com rebalanceamento pendente.<\/p>\n<p><img decoding=\"async\" src=\"\/wp-content\/original-assets\/2016\/june\/multi-node-full-text-search\/screen-shot-2016-06-03-at-8.09.26-pm.png\" alt=\"rebalance pending\" \/><\/p>\n<p>Nesse caso, vejo um aviso de fail over porque os dados de amostra de viagem n\u00e3o t\u00eam r\u00e9plicas. Entro e pressiono o bot\u00e3o de rebalanceamento. Os documentos come\u00e7am a ser copiados para o novo n\u00f3, as r\u00e9plicas s\u00e3o criadas e as exibi\u00e7\u00f5es da amostra de viagem s\u00e3o mostradas como \"em constru\u00e7\u00e3o\" porque s\u00e3o uma forma de \u00edndice local, portanto, o rebalanceamento de dados significa que as exibi\u00e7\u00f5es tamb\u00e9m precisam ser reconstru\u00eddas \u00e0 medida que os dados ativos s\u00e3o movidos. (Se voc\u00ea quiser economizar algum tempo para os fins desta demonstra\u00e7\u00e3o, poder\u00e1 excluir as exibi\u00e7\u00f5es). Seus pindexes tamb\u00e9m s\u00e3o rebalanceados entre os n\u00f3s dispon\u00edveis.<\/p>\n<p><img decoding=\"async\" src=\"\/wp-content\/original-assets\/2016\/june\/multi-node-full-text-search\/screen-shot-2016-06-03-at-8.12.24-pm.png\" alt=\"failover warning\" \/><br \/>\nQuando o processo for conclu\u00eddo, voc\u00ea ter\u00e1 agora metade dos pindexes em cada servidor.<\/p>\n<p><img decoding=\"async\" style=\"line-height: 20.8px; opacity: 0.9;\" src=\"\/wp-content\/original-assets\/2016\/june\/multi-node-full-text-search\/screen-shot-2016-06-03-at-8.24.28-pm.png\" alt=\"index replicas\" \/><\/p>\n<p><span style=\"color: #333333; line-height: 20.8px; text-align: left;\">Para verificar isso, verifique o da do Couchbase<\/span><span style=\"line-height: 1.6em;\">ta novamente. Voc\u00ea ver\u00e1 metade do n\u00famero de diret\u00f3rios:<\/span><\/p>\n<p><img decoding=\"async\" src=\"\/wp-content\/original-assets\/2016\/june\/multi-node-full-text-search\/screen-shot-2016-06-03-at-8.24.02-pm.png\" alt=\"half of the pindexes\" \/><\/p>\n<h2>R\u00e9plicas de \u00edndices<\/h2>\n<p>Os \u00edndices de texto completo podem ser replicados, assim como voc\u00ea pode ter documentos ativos e r\u00e9plicas no Couchbase. Assim como as r\u00e9plicas de documentos, as r\u00e9plicas de \u00edndices de texto s\u00e3o dispostas automaticamente no cluster em uma distribui\u00e7\u00e3o equilibrada, dependendo do hardware dispon\u00edvel. A replica\u00e7\u00e3o de \u00edndices de texto completo serve principalmente para acelerar o failover. Ao contr\u00e1rio dos documentos, os \u00edndices de texto completo n\u00e3o correm o risco de perda de dados porque sempre podem ser recriados por meio da reindexa\u00e7\u00e3o usando a defini\u00e7\u00e3o de \u00edndice.<\/p>\n<p>Ao criar ou atualizar um \u00edndice de texto completo, voc\u00ea tem a op\u00e7\u00e3o de especificar uma ou duas r\u00e9plicas. Para fazer isso, navegue at\u00e9 a defini\u00e7\u00e3o do \u00edndice, clique em <em>Editar<\/em>e, em seguida, verifique <em>Mostrar configura\u00e7\u00f5es avan\u00e7adas<\/em>.<br \/>\n<img decoding=\"async\" src=\"\/wp-content\/original-assets\/2016\/june\/multi-node-full-text-search\/screen-shot-2016-06-03-at-8.31.56-pm.png\" alt=\"Edit index advanced settings\" \/><\/p>\n<p>Em <em>Par\u00e2metros do plano<\/em>, mudar <em>numReplicas<\/em> para 1 e, em seguida<em> \u00cdndice de atualiza\u00e7\u00e3o<\/em>.<\/p>\n<p><img decoding=\"async\" src=\"\/wp-content\/original-assets\/2016\/june\/multi-node-full-text-search\/screen-shot-2016-06-03-at-8.32.24-pm.png\" alt=\"set number of replicas\" \/><br \/>\nAssim que voc\u00ea salvar sua defini\u00e7\u00e3o, o Couchbase Server come\u00e7ar\u00e1 a criar os \u00edndices de texto ativo e de r\u00e9plica.  Isso lhe dar\u00e1 outra c\u00f3pia do \u00edndice. Novamente, voc\u00ea pode verificar isso examinando um dos diret\u00f3rios data@fts e contando os pindexes. Cada n\u00f3 deve ter agora 1\/2 dos \u00edndices de pinos ativos e 1\/2 dos \u00edndices de pinos de r\u00e9plica.<\/p>\n<p><img decoding=\"async\" src=\"\/wp-content\/original-assets\/2016\/june\/multi-node-full-text-search\/screen-shot-2016-06-03-at-8.34.39-pm.png\" alt=\"pindexes again\" \/><\/p>\n<p>Voc\u00ea tamb\u00e9m pode ver isso clicando no \u00edcone <em>N\u00f3s do servidor<\/em> clicando em um dos servidores e, em seguida, expandindo \"<em>Estat\u00edsticas de pesquisa de texto completo<\/em>\" para o \u00edndice que voc\u00ea criou. Voc\u00ea ver\u00e1 as estat\u00edsticas de <em>pindexes reais<\/em> (quantos existem) e<em> pindexes alvo<\/em> (quantas deveriam existir, dado o n\u00famero de r\u00e9plicas que voc\u00ea solicitou).<\/p>\n<p><img decoding=\"async\" src=\"\/wp-content\/original-assets\/2016\/june\/multi-node-full-text-search\/screen-shot-2016-06-03-at-8.37.18-pm.png\" alt=\"Monitoring fts stats for pindexes\" \/><\/p>\n<h2>Failing Over<\/h2>\n<p>Agora, fa\u00e7a o failover de um n\u00f3. Se voc\u00ea pesquisar agora, obter\u00e1 resultados parciais, ou seja, obter\u00e1 resultados de pesquisa dos pindexes restantes. Isso foi projetado, pois alguns aplicativos podem optar por continuar com resultados parciais em vez de gerar um erro. Afinal, com um conjunto de dados grande o suficiente, os usu\u00e1rios podem nem perceber a falta de documentos.<\/p>\n<p><img decoding=\"async\" src=\"\/wp-content\/original-assets\/2016\/june\/multi-node-full-text-search\/screen-shot-2016-06-03-at-8.41.59-pm.png\" alt=\"rebalance with replica\" \/><\/p>\n<p>Agora, fa\u00e7a o rebalanceamento do n\u00f3. O reequil\u00edbrio com r\u00e9plicas \u00e9 bastante r\u00e1pido (se voc\u00ea n\u00e3o tiver exclu\u00eddo as exibi\u00e7\u00f5es de amostra de viagem anteriormente, o failover levar\u00e1 muito mais tempo).<\/p>\n<p><img decoding=\"async\" src=\"\/wp-content\/original-assets\/2016\/june\/multi-node-full-text-search\/screen-shot-2016-06-03-at-8.48.54-pm.png\" alt=\"rebalance pending\" \/><br \/>\nQuando voc\u00ea aciona o rebalanceamento, o outro n\u00f3 assume o controle rapidamente, ativando as r\u00e9plicas - tanto as r\u00e9plicas de documentos quanto as r\u00e9plicas de pindex. Essa promo\u00e7\u00e3o \u00e9 instant\u00e2nea. Se a indexa\u00e7\u00e3o estiver em andamento, seja porque o \u00edndice n\u00e3o est\u00e1 totalmente atualizado ou porque est\u00e3o ocorrendo muta\u00e7\u00f5es de documentos, os \u00edndices de texto completo podem levar mais tempo para serem criados. \u00c0 medida que os vBuckets se movem, os n\u00f3s que executam o servi\u00e7o FTS reconectam seus fluxos de DCP para onde quer que os vBuckets tenham terminado no rebalanceamento.<\/p>\n<p>Voc\u00ea dever\u00e1 ver algo parecido com isto quando o rebalanceamento for conclu\u00eddo. Agora n\u00e3o temos r\u00e9plicas e voltamos ao n\u00famero de pindexes que t\u00ednhamos no in\u00edcio:<\/p>\n<p><img decoding=\"async\" src=\"\/wp-content\/original-assets\/2016\/june\/multi-node-full-text-search\/screen-shot-2016-06-03-at-8.52.29-pm.png\" alt=\"All done\" \/><\/p>\n<h2>Failing over sem r\u00e9plicas<\/h2>\n<p>Voc\u00ea deve estar se perguntando o que aconteceria se fizesse o experimento acima sem ter criado nenhuma r\u00e9plica de \u00edndice de texto completo primeiro. Isso tamb\u00e9m funciona, e vale a pena fazer isso pelo menos uma vez para ver o que acontece. Voc\u00ea n\u00e3o ter\u00e1 prim\u00e1rias para alguns de seus pindexes - exatamente a metade nesse caso. Tudo bem - como mencionei acima, voc\u00ea n\u00e3o ter\u00e1 perda de dados, pois os pindexes ausentes podem ser recriados reindexando os documentos usando as defini\u00e7\u00f5es de \u00edndice originais. Voc\u00ea obter\u00e1 resultados parciais e tamb\u00e9m por um per\u00edodo de tempo mais longo. Isso ocorre porque, quando voc\u00ea faz um rebalanceamento, os pindexes ausentes precisam come\u00e7ar do zero e n\u00e3o estar\u00e3o t\u00e3o atualizados quanto estariam se houvesse r\u00e9plicas de pindex dispon\u00edveis.<\/p>\n<h2>Experimente<\/h2>\n<p>Os \u00edndices de texto completo distribu\u00eddos s\u00e3o um dos meus recursos favoritos desta vers\u00e3o. Definitivamente, eles levam mais tempo para serem explicados do que para serem usados! Convidamos voc\u00ea a experiment\u00e1-los e nos dizer o que achou. Boa pesquisa!<\/p>","protected":false},"excerpt":{"rendered":"<p>Scale out Full Text Search in Couchbase Server 4.5 Beta Couchbase Server 4.5 includes a new service, full text search (FTS) . In this blog, I&#8217;ll talk about how FTS scales out across nodes, how to replicate indexes, and how [&hellip;]<\/p>","protected":false},"author":65,"featured_media":13873,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"inline_featured_image":false,"footnotes":""},"categories":[1816],"tags":[],"ppma_author":[9036],"class_list":["post-2289","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-couchbase-server"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v26.2 (Yoast SEO v26.2) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Multi-Node Full Text Search in Couchbase 4.5 Beta - The Couchbase Blog<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.couchbase.com\/blog\/pt\/multi-node-full-text-search\/\" \/>\n<meta property=\"og:locale\" content=\"pt_BR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Multi-Node Full Text Search in Couchbase 4.5 Beta\" \/>\n<meta property=\"og:description\" content=\"Scale out Full Text Search in Couchbase Server 4.5 Beta Couchbase Server 4.5 includes a new service, full text search (FTS) . In this blog, I&#8217;ll talk about how FTS scales out across nodes, how to replicate indexes, and how [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.couchbase.com\/blog\/pt\/multi-node-full-text-search\/\" \/>\n<meta property=\"og:site_name\" content=\"The Couchbase Blog\" \/>\n<meta property=\"article:published_time\" content=\"2016-06-04T05:14:49+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-09-12T08:29:35+00:00\" \/>\n<meta name=\"author\" content=\"Will Gardella, Director, Product Management, Couchbase\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Will Gardella, Director, Product Management, Couchbase\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"10 minutos\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/multi-node-full-text-search\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/multi-node-full-text-search\/\"},\"author\":{\"name\":\"Will Gardella, Director, Product Management, Couchbase\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/16361083d282711e0137f93b708ce062\"},\"headline\":\"Multi-Node Full Text Search in Couchbase 4.5 Beta\",\"datePublished\":\"2016-06-04T05:14:49+00:00\",\"dateModified\":\"2024-09-12T08:29:35+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/multi-node-full-text-search\/\"},\"wordCount\":1662,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/multi-node-full-text-search\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png\",\"articleSection\":[\"Couchbase Server\"],\"inLanguage\":\"pt-BR\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.couchbase.com\/blog\/multi-node-full-text-search\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/multi-node-full-text-search\/\",\"url\":\"https:\/\/www.couchbase.com\/blog\/multi-node-full-text-search\/\",\"name\":\"Multi-Node Full Text Search in Couchbase 4.5 Beta - The Couchbase Blog\",\"isPartOf\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/multi-node-full-text-search\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/multi-node-full-text-search\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png\",\"datePublished\":\"2016-06-04T05:14:49+00:00\",\"dateModified\":\"2024-09-12T08:29:35+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/multi-node-full-text-search\/#breadcrumb\"},\"inLanguage\":\"pt-BR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.couchbase.com\/blog\/multi-node-full-text-search\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-BR\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/multi-node-full-text-search\/#primaryimage\",\"url\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png\",\"contentUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png\",\"width\":1800,\"height\":630},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/multi-node-full-text-search\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.couchbase.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Multi-Node Full Text Search in Couchbase 4.5 Beta\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#website\",\"url\":\"https:\/\/www.couchbase.com\/blog\/\",\"name\":\"The Couchbase Blog\",\"description\":\"Couchbase, the NoSQL Database\",\"publisher\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.couchbase.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"pt-BR\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#organization\",\"name\":\"The Couchbase Blog\",\"url\":\"https:\/\/www.couchbase.com\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-BR\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2023\/04\/admin-logo.png\",\"contentUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2023\/04\/admin-logo.png\",\"width\":218,\"height\":34,\"caption\":\"The Couchbase Blog\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/logo\/image\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/16361083d282711e0137f93b708ce062\",\"name\":\"Will Gardella, Director, Product Management, Couchbase\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-BR\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/image\/94034c6625aea3f838289a292d6904f9\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/02b02044056ac5f8f16d9f9bb9655835aec233a42c12d08f4e95e030c522d35a?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/02b02044056ac5f8f16d9f9bb9655835aec233a42c12d08f4e95e030c522d35a?s=96&d=mm&r=g\",\"caption\":\"Will Gardella, Director, Product Management, Couchbase\"},\"description\":\"Will Gardella is Director of Product Management for analytics at Couchbase. Previously, he was a product manager in the big data platform team at HP, a senior director of product management for SAP HANA, and the senior director of SAP Research's global Big Data program focused on big data and machine learning.\",\"url\":\"https:\/\/www.couchbase.com\/blog\/pt\/author\/will-gardella\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Multi-Node Full Text Search in Couchbase 4.5 Beta - The Couchbase Blog","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.couchbase.com\/blog\/pt\/multi-node-full-text-search\/","og_locale":"pt_BR","og_type":"article","og_title":"Multi-Node Full Text Search in Couchbase 4.5 Beta","og_description":"Scale out Full Text Search in Couchbase Server 4.5 Beta Couchbase Server 4.5 includes a new service, full text search (FTS) . In this blog, I&#8217;ll talk about how FTS scales out across nodes, how to replicate indexes, and how [&hellip;]","og_url":"https:\/\/www.couchbase.com\/blog\/pt\/multi-node-full-text-search\/","og_site_name":"The Couchbase Blog","article_published_time":"2016-06-04T05:14:49+00:00","article_modified_time":"2024-09-12T08:29:35+00:00","author":"Will Gardella, Director, Product Management, Couchbase","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Will Gardella, Director, Product Management, Couchbase","Est. reading time":"10 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.couchbase.com\/blog\/multi-node-full-text-search\/#article","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/multi-node-full-text-search\/"},"author":{"name":"Will Gardella, Director, Product Management, Couchbase","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/16361083d282711e0137f93b708ce062"},"headline":"Multi-Node Full Text Search in Couchbase 4.5 Beta","datePublished":"2016-06-04T05:14:49+00:00","dateModified":"2024-09-12T08:29:35+00:00","mainEntityOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/multi-node-full-text-search\/"},"wordCount":1662,"commentCount":0,"publisher":{"@id":"https:\/\/www.couchbase.com\/blog\/#organization"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/multi-node-full-text-search\/#primaryimage"},"thumbnailUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png","articleSection":["Couchbase Server"],"inLanguage":"pt-BR","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.couchbase.com\/blog\/multi-node-full-text-search\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.couchbase.com\/blog\/multi-node-full-text-search\/","url":"https:\/\/www.couchbase.com\/blog\/multi-node-full-text-search\/","name":"Multi-Node Full Text Search in Couchbase 4.5 Beta - The Couchbase Blog","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/multi-node-full-text-search\/#primaryimage"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/multi-node-full-text-search\/#primaryimage"},"thumbnailUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png","datePublished":"2016-06-04T05:14:49+00:00","dateModified":"2024-09-12T08:29:35+00:00","breadcrumb":{"@id":"https:\/\/www.couchbase.com\/blog\/multi-node-full-text-search\/#breadcrumb"},"inLanguage":"pt-BR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.couchbase.com\/blog\/multi-node-full-text-search\/"]}]},{"@type":"ImageObject","inLanguage":"pt-BR","@id":"https:\/\/www.couchbase.com\/blog\/multi-node-full-text-search\/#primaryimage","url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png","contentUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png","width":1800,"height":630},{"@type":"BreadcrumbList","@id":"https:\/\/www.couchbase.com\/blog\/multi-node-full-text-search\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.couchbase.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Multi-Node Full Text Search in Couchbase 4.5 Beta"}]},{"@type":"WebSite","@id":"https:\/\/www.couchbase.com\/blog\/#website","url":"https:\/\/www.couchbase.com\/blog\/","name":"Blog do Couchbase","description":"Couchbase, o banco de dados NoSQL","publisher":{"@id":"https:\/\/www.couchbase.com\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.couchbase.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"pt-BR"},{"@type":"Organization","@id":"https:\/\/www.couchbase.com\/blog\/#organization","name":"Blog do Couchbase","url":"https:\/\/www.couchbase.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"pt-BR","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2023\/04\/admin-logo.png","contentUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2023\/04\/admin-logo.png","width":218,"height":34,"caption":"The Couchbase Blog"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/16361083d282711e0137f93b708ce062","name":"Will Gardella, diretor de gerenciamento de produtos, Couchbase","image":{"@type":"ImageObject","inLanguage":"pt-BR","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/image\/94034c6625aea3f838289a292d6904f9","url":"https:\/\/secure.gravatar.com\/avatar\/02b02044056ac5f8f16d9f9bb9655835aec233a42c12d08f4e95e030c522d35a?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/02b02044056ac5f8f16d9f9bb9655835aec233a42c12d08f4e95e030c522d35a?s=96&d=mm&r=g","caption":"Will Gardella, Director, Product Management, Couchbase"},"description":"Will Gardella \u00e9 diretor de gerenciamento de produtos para an\u00e1lise na Couchbase. Anteriormente, ele foi gerente de produto na equipe de plataforma de Big Data da HP, diretor s\u00eanior de gerenciamento de produtos para SAP HANA e diretor s\u00eanior do programa global de Big Data da SAP Research, com foco em Big Data e aprendizado de m\u00e1quina.","url":"https:\/\/www.couchbase.com\/blog\/pt\/author\/will-gardella\/"}]}},"authors":[{"term_id":9036,"user_id":65,"is_guest":0,"slug":"will-gardella","display_name":"Will Gardella, Director, Product Management, Couchbase","avatar_url":"https:\/\/secure.gravatar.com\/avatar\/02b02044056ac5f8f16d9f9bb9655835aec233a42c12d08f4e95e030c522d35a?s=96&d=mm&r=g","author_category":"","last_name":"Gardella","first_name":"Will","job_title":"","user_url":"","description":"Will Gardella \u00e9 diretor de gerenciamento de produtos para an\u00e1lise na Couchbase. Anteriormente, ele foi gerente de produto na equipe de plataforma de Big Data da HP, diretor s\u00eanior de gerenciamento de produtos para SAP HANA e diretor s\u00eanior do programa global de Big Data da SAP Research, com foco em Big Data e aprendizado de m\u00e1quina."}],"_links":{"self":[{"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/posts\/2289","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/users\/65"}],"replies":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/comments?post=2289"}],"version-history":[{"count":0,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/posts\/2289\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/media\/13873"}],"wp:attachment":[{"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/media?parent=2289"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/categories?post=2289"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/tags?post=2289"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/ppma_author?post=2289"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}