{"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\/es\/multi-node-full-text-search\/","title":{"rendered":"B\u00fasqueda de texto completo en varios nodos en Couchbase 4.5 Beta"},"content":{"rendered":"<h2>Ampliaci\u00f3n de la b\u00fasqueda de texto completo en Couchbase Server 4.5 Beta<\/h2>\n<p>Couchbase Server 4.5 incluye un nuevo servicio, <a href=\"https:\/\/www.couchbase.com\/blog\/es\/couchbase-4.5-developer-preview-couchbase-fts\/\">b\u00fasqueda de texto completo (BTS) <\/a>. En este blog, voy a hablar de c\u00f3mo FTS escala a trav\u00e9s de nodos, c\u00f3mo replicar \u00edndices, y c\u00f3mo se comporta en un reequilibrio.<\/p>\n<p>Desde el lanzamiento de Couchbase Server 4.5 Developer Preview, el equipo de FTS ha estado ocupado.  La versi\u00f3n beta de Couchbase Server 4.5 no s\u00f3lo elimina un mont\u00f3n de errores de FTS, sino que tambi\u00e9n incluye <a href=\"https:\/\/developer.couchbase.com\/documentation\/server\/4.5\/fts\/fts-whats-new.html#topic_jzy_p5v_vv\">muchas grandes mejoras del FTS<\/a>:<\/p>\n<ul>\n<li>Indexaci\u00f3n 12 veces m\u00e1s r\u00e1pida<\/li>\n<li>mejores estad\u00edsticas<\/li>\n<li>compatibilidad con la autenticaci\u00f3n y el control de acceso basado en funciones<\/li>\n<li>registro de auditor\u00eda de los eventos del administrador<\/li>\n<li>apoyo a los resultados parciales<\/li>\n<\/ul>\n<p>La nueva caracter\u00edstica de b\u00fasqueda m\u00e1s notable en la beta 4.5 es la capacidad de ejecutar el servicio FTS a trav\u00e9s de m\u00faltiples nodos.  Puedes probarlo hoy con la beta, y lo que leas aqu\u00ed se seguir\u00e1 aplicando cuando Couchbase Server 4.5 pase a GA.<\/p>\n<p>Perm\u00edtanme quitarme de en medio el descargo de responsabilidad: \u00a0<strong>FTS seguir\u00e1 siendo una vista previa para desarrolladores en la versi\u00f3n GA de Couchbase Server 4.5, as\u00ed que no lo ejecute en un servidor de producci\u00f3n, por favor.<\/strong>. FTS tiene muchas funciones muy \u00fatiles, pero a\u00fan no hemos marcado todas las casillas de rendimiento y pruebas de sistema de nuestra lista de tareas pendientes. Por otro lado, eso nos da la oportunidad de abordar algunas de las opiniones que estamos recibiendo de los primeros usuarios de prueba.  (\u00bfTienes comentarios? No dudes en enviarme un correo electr\u00f3nico directamente a will dot gardella at couchbase dot com)<\/p>\n<p>Ok, vamos a lo bueno. Puedes usar el servicio de b\u00fasqueda para indexar y buscar texto en tus documentos Couchbase sin depender de un paquete de b\u00fasqueda de terceros. El nuevo servicio de b\u00fasqueda une los servicios de datos, \u00edndices y consultas y puede ser gestionado como otros servicios para prop\u00f3sitos de escalado multidimensional (MDS).  Ten en cuenta que, a diferencia de N1QL, el servicio de b\u00fasqueda realiza tanto la consulta de texto completo como la indexaci\u00f3n en un \u00fanico servicio.<\/p>\n<h2>Servicio de b\u00fasqueda distribuida: bajo el cap\u00f3<span style=\"font-size: 13px; line-height: 1.6em;\">\u00a0<\/span><\/h2>\n<p>En la mayor\u00eda de los casos, los \u00edndices de b\u00fasqueda distribuida \"simplemente funcionan\": el servicio de B\u00fasqueda de Texto Completo de Couchbase aprovecha el nuevo hardware a medida que a\u00f1ades nodos, y los \u00edndices de texto completo se sobreescriben y reequilibran junto con el servicio de datos. Esta secci\u00f3n habla de los mecanismos que permiten esto, que normalmente no necesitas conocer como usuario pero que a veces encontrar\u00e1s, como en los resultados parciales de b\u00fasqueda (que se tratan m\u00e1s adelante).<\/p>\n<p>Desde el principio, la b\u00fasqueda de texto completo se dise\u00f1\u00f3 para distribuir \u00edndices de texto entre nodos, de forma muy similar a como el servicio de datos distribuye los datos en buckets.  Si entiendes el <a href=\"https:\/\/developer.couchbase.com\/documentation\/server\/4.5\/concepts\/distributed-data-management.html\">buckets y vBuckets<\/a>Ya tienes un buen modelo mental para entender esto.  El bucket es una unidad l\u00f3gica de contenci\u00f3n de datos con la que es f\u00e1cil trabajar, y el vBucket es una porci\u00f3n f\u00edsica de los datos que est\u00e1n en un bucket, que vive en un nodo espec\u00edfico de un cluster. Cuando activas la replicaci\u00f3n en un bucket, Couchbase Server crea copias de todos los vBuckets necesarios que componen ese bucket. Couchbase Server tambi\u00e9n se asegura de que la distribuci\u00f3n de esos vBuckets es \u00f3ptima, lo cual es en s\u00ed mismo un tema complejo, pero por ahora, puedes pensar en ello como el equilibrio de las ubicaciones de los vBuckets para que se distribuyan uniformemente entre los nodos.<\/p>\n<p>FTS funciona de forma similar. Los \u00edndices de texto completo se dividen autom\u00e1ticamente en fragmentos denominados <strong><em>pindexes<\/em><\/strong>que es la abreviatura de \"\u00edndices particionados\" o \"\u00edndices f\u00edsicos\", seg\u00fan a qui\u00e9n preguntes.  Al igual que un bucket, un \u00edndice de texto completo es un concepto l\u00f3gico. El pindex es la implementaci\u00f3n f\u00edsica del \u00edndice, al igual que el vBucket es la implementaci\u00f3n f\u00edsica del bucket.<\/p>\n<p>Los pindexes se distribuyen f\u00edsicamente entre los nodos de Couchbase que ejecutan el servicio de b\u00fasqueda, por muchos que sean. En la versi\u00f3n preliminar para desarrolladores, era un \u00fanico nodo, pero esa restricci\u00f3n se ha eliminado en la versi\u00f3n Beta. En los ejemplos de abajo, usaremos s\u00f3lo dos nodos para mantenerlo simple.<\/p>\n<h2>A\u00f1adir un nodo de b\u00fasqueda<\/h2>\n<p>Es hora de ponerse manos a la obra. Si tienes Couchbase Server 4.5 Beta o m\u00e1s reciente, est\u00e1s listo para empezar. Vas a necesitar configurar m\u00e1s de un nodo, as\u00ed que prepara una m\u00e1quina virtual. Para este ejemplo, voy a usar un par de m\u00e1quinas virtuales Windows Server 2012.<\/p>\n<p>Empecemos con un \u00fanico nodo que ejecute el servicio de b\u00fasqueda. Crearemos un \u00edndice simple en los documentos de hoteles del cubo de la muestra de viajes. Si no tienes la muestra de viajes instalada, puedes obtenerla haciendo clic en <em>Ajustes<\/em> &gt; <em>Cubos de muestra<\/em> y marque la casilla.<\/p>\n<p>Para los prop\u00f3sitos de esta demostraci\u00f3n, cualquier \u00edndice de texto completo servir\u00e1. He creado un \u00edndice en type=\"hotel\" (no olvides desactivar la asignaci\u00f3n de tipos por defecto) con dos campos, \"name\" y \"description\", store = true, y \"index only specified fields\" s\u00f3lo para que se construya r\u00e1pido.<\/p>\n<p>Aqu\u00ed est\u00e1 el comando curl, por si tienes alergia a la interfaz de usuario:<\/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>Cuando hayas terminado, puedes buscar una palabra com\u00fan como \"Posada\" para asegurarte de que todo funciona.<\/p>\n<p style=\"color: #333333; line-height: 20.8px; text-align: left;\"><span style=\"line-height: 20.8px;\">Cuando eches un vistazo a tu directorio de datos de Couchbase, ver\u00e1s un <em>@fts<\/em>\u00a0directorio. \u00c1brelo y ver\u00e1s un mont\u00f3n de directorios que contienen los pindex.<\/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 nodo de b\u00fasqueda y reequilibrio<\/h2>\n<p>Siga adelante y a\u00f1ada un segundo nodo al cl\u00faster, como har\u00eda normalmente. <strong>No olvide marcar la casilla para activar el servicio de b\u00fasqueda.<\/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>Ver\u00e1s una pantalla parecida a esta cuando termines, mostrando un servidor pendiente de reequilibrio.<\/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>En este caso, veo una advertencia de fallo porque los datos de la muestra de viaje no tienen r\u00e9plicas. Entro y pulso el bot\u00f3n de reequilibrio. Los documentos comienzan a copiarse en el nuevo nodo, se crean r\u00e9plicas y las vistas de la muestra de viaje se muestran como \"en construcci\u00f3n\" porque son una forma de \u00edndice local, por lo que el reequilibrio de datos significa que las vistas tambi\u00e9n tienen que reconstruirse a medida que se mueven los datos activos. (Si quieres ahorrarte algo de tiempo para los prop\u00f3sitos de esta demostraci\u00f3n, puedes borrar las vistas). Sus pindexes tambi\u00e9n se reequilibran sobre los nodos disponibles.<\/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 \/>\nUna vez finalizado el proceso, ahora tendr\u00e1s la mitad de los pindex en 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 verificarlo, compruebe su da Couchbase<\/span><span style=\"line-height: 1.6em;\">ta de nuevo. Ver\u00e1s la mitad de directorios:<\/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>Los \u00edndices de texto completo pueden ser replicados, al igual que puedes tener documentos activos y r\u00e9plicas en Couchbase. Al igual que las r\u00e9plicas de documentos, las r\u00e9plicas de \u00edndices de texto se colocan autom\u00e1ticamente en el cluster en una distribuci\u00f3n equilibrada dependiendo del hardware disponible. La replicaci\u00f3n de \u00edndices de texto completo es principalmente para acelerar el failover. A diferencia de los documentos, los \u00edndices de texto completo no est\u00e1n en riesgo de p\u00e9rdida de datos porque siempre pueden ser recreados reindexando usando la definici\u00f3n del \u00edndice.<\/p>\n<p>Cuando crea o actualiza un \u00edndice de texto completo, tiene la opci\u00f3n de especificar una o dos r\u00e9plicas. Para ello, vaya a la definici\u00f3n del \u00edndice, haga clic en <em>Editar<\/em>y, a continuaci\u00f3n, compruebe <em>Mostrar configuraci\u00f3n avanzada<\/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>En <em>Par\u00e1metros del plan<\/em>, cambio <em>numReplicas<\/em> a 1 y, a continuaci\u00f3n<em> \u00cdndice de actualizaci\u00f3n<\/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 \/>\nTan pronto como guardes tu definici\u00f3n, Couchbase Server empezar\u00e1 a crear los \u00edndices de texto activo y r\u00e9plica.  Esto te dar\u00e1 otra copia del \u00edndice. De nuevo, puedes verificarlo mirando uno de los directorios data@fts y contando los pindexes. Cada nodo deber\u00eda tener ahora 1\/2 de los pindexes activos y 1\/2 de los pindexes 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>Tambi\u00e9n puede verlo haciendo clic en el icono <em>Nodos servidores<\/em> haciendo clic en uno de los servidores y ampliando \"<em>Estad\u00edsticas de b\u00fasqueda de texto completo<\/em>\"para el \u00edndice creado. Ver\u00e1 las estad\u00edsticas de <em>pindexes actual<\/em> (cu\u00e1ntos existen) y<em> pindexes target<\/em> (cu\u00e1ntas deber\u00edan existir, dado el n\u00famero de r\u00e9plicas que ha solicitado).<\/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>Ahora conmute por error un nodo. Si busca ahora, obtendr\u00e1 resultados parciales - es decir, obtendr\u00e1 resultados de b\u00fasqueda de los p\u00edndex restantes. Esto es por dise\u00f1o, ya que algunas aplicaciones pueden optar por continuar con resultados parciales en lugar de lanzar un error. Al fin y al cabo, con un conjunto de datos lo suficientemente grande, es posible que los usuarios ni siquiera se den cuenta de que faltan 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>Ahora, reequilibre el nodo. El reequilibrio con r\u00e9plicas es bastante r\u00e1pido (si no ha eliminado antes las vistas de muestra de viaje, la conmutaci\u00f3n por error tarda bastante m\u00e1s).<\/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 \/>\nCuando se pulsa reequilibrar, el otro nodo toma el relevo muy r\u00e1pidamente activando r\u00e9plicas - tanto r\u00e9plicas de documentos como r\u00e9plicas de pindex. Esta promoci\u00f3n es instant\u00e1nea. Si la indexaci\u00f3n est\u00e1 en curso, ya sea porque el \u00edndice no est\u00e1 completamente actualizado o porque se est\u00e1n produciendo mutaciones de documentos, los \u00edndices de texto completo pueden tardar m\u00e1s tiempo en crearse. A medida que los vBuckets se mueven, los nodos que ejecutan el servicio FTS reconectar\u00e1n sus flujos DCP al lugar donde terminaron los vBuckets en el reequilibrio.<\/p>\n<p>Deber\u00edas ver algo como esto cuando se complete el reequilibrio. Ahora no tenemos r\u00e9plicas y hemos vuelto al n\u00famero de pindexes que ten\u00edamos al principio:<\/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 sin r\u00e9plicas<\/h2>\n<p>Quiz\u00e1 te preguntes qu\u00e9 pasar\u00eda si hicieras el experimento anterior sin haber creado antes ninguna r\u00e9plica de \u00edndice de texto completo. Eso tambi\u00e9n funciona, y merece la pena hacerlo al menos una vez para ver qu\u00e9 pasa. No tendr\u00e1s primarios para algunos de tus pindexes - exactamente la mitad en este caso. No pasa nada: como he mencionado antes, no hay p\u00e9rdida de datos, porque los p\u00edndices que faltan se pueden volver a crear reindexando los documentos con las definiciones de \u00edndice originales. Obtendr\u00e1 resultados parciales y, adem\u00e1s, durante m\u00e1s tiempo. Esto se debe a que, cuando se realiza un reequilibrio, los p\u00edndices que faltan tienen que empezar desde cero y no se recuperar\u00e1n como lo har\u00edan si hubiera r\u00e9plicas de p\u00edndices disponibles.<\/p>\n<h2>Pru\u00e9balo<\/h2>\n<p>Los \u00edndices de texto completo distribuidos son una de mis funciones favoritas de esta versi\u00f3n. No cabe duda de que se tarda m\u00e1s en explicarlas que en utilizarlas. Te invitamos a que los pruebes y nos digas qu\u00e9 te parecen. \u00a1Feliz b\u00fasqueda!<\/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.0 (Yoast SEO v26.0) - 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\/es\/multi-node-full-text-search\/\" \/>\n<meta property=\"og:locale\" content=\"es_MX\" \/>\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\/es\/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\":\"es\",\"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\":\"es\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.couchbase.com\/blog\/multi-node-full-text-search\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@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\":\"es\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#organization\",\"name\":\"The Couchbase Blog\",\"url\":\"https:\/\/www.couchbase.com\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@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\":\"es\",\"@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\/es\/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\/es\/multi-node-full-text-search\/","og_locale":"es_MX","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\/es\/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":"es","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":"es","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.couchbase.com\/blog\/multi-node-full-text-search\/"]}]},{"@type":"ImageObject","inLanguage":"es","@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":"El blog de Couchbase","description":"Couchbase, la base de datos 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":"es"},{"@type":"Organization","@id":"https:\/\/www.couchbase.com\/blog\/#organization","name":"El blog de Couchbase","url":"https:\/\/www.couchbase.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"es","@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 de Gesti\u00f3n de Productos, Couchbase","image":{"@type":"ImageObject","inLanguage":"es","@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 es director de gesti\u00f3n de productos de anal\u00edtica en Couchbase. Anteriormente, fue director de producto en el equipo de plataformas de big data de HP, director s\u00e9nior de gesti\u00f3n de producto para SAP HANA y director s\u00e9nior del programa global de Big Data de SAP Research centrado en big data y aprendizaje autom\u00e1tico.","url":"https:\/\/www.couchbase.com\/blog\/es\/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 es director de gesti\u00f3n de productos de anal\u00edtica en Couchbase. Anteriormente, fue director de producto en el equipo de plataformas de big data de HP, director s\u00e9nior de gesti\u00f3n de producto para SAP HANA y director s\u00e9nior del programa global de Big Data de SAP Research centrado en big data y aprendizaje autom\u00e1tico."}],"_links":{"self":[{"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/posts\/2289","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/users\/65"}],"replies":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/comments?post=2289"}],"version-history":[{"count":0,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/posts\/2289\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/media\/13873"}],"wp:attachment":[{"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/media?parent=2289"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/categories?post=2289"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/tags?post=2289"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/ppma_author?post=2289"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}