{"id":2341,"date":"2016-07-21T15:00:00","date_gmt":"2016-07-21T15:00:00","guid":{"rendered":"https:\/\/www.couchbase.com\/blog\/?p=2341"},"modified":"2025-06-13T21:20:51","modified_gmt":"2025-06-14T04:20:51","slug":"using-full-text-search-fts-with-couchbase-in-a-golang-application","status":"publish","type":"post","link":"https:\/\/www.couchbase.com\/blog\/es\/using-full-text-search-fts-with-couchbase-in-a-golang-application\/","title":{"rendered":"Uso de la b\u00fasqueda de texto completo (FTS) con Couchbase en una aplicaci\u00f3n GoLang"},"content":{"rendered":"<p>Hace poco escrib\u00ed sobre <a href=\"https:\/\/www.couchbase.com\/blog\/es\/using-full-text-search-fts-in-couchbase-with-the-nodejs-sdk\/\">Uso de la b\u00fasqueda de texto completo (FTS) en una aplicaci\u00f3n Node.js<\/a> que hace uso de Couchbase Server 4.5 y superior. Como sabr\u00e1s, FTS est\u00e1 disponible como Developer Preview a partir de Couchbase Server 4.5. Esto es enorme para Couchbase porque abre la puerta en cuanto a posibilidades. En lugar de hacer consultas comod\u00edn ineficientes, podemos usar consultas de b\u00fasqueda contra \u00edndices de texto completo. La necesidad de usar ElasticSearch o Solr se hace menos necesaria tambi\u00e9n, a menos que por supuesto tu negocio est\u00e9 construido alrededor de la b\u00fasqueda.<\/p>\n<p>Vamos a tomar los ejemplos vistos en el art\u00edculo de Node.js y verlos en acci\u00f3n usando el lenguaje de programaci\u00f3n Go. Si no te interesa Node.js o no est\u00e1s familiarizado con el ejemplo utilizado, no te preocupes. En el ejemplo anterior ten\u00edamos un escenario imaginario de evaluaci\u00f3n de curr\u00edculums en el que pod\u00edamos escanear curr\u00edculums de solicitantes de empleo en busca de palabras clave y puntuarlos. Seguiremos usando ese ejemplo.<\/p>\n<h2>Crear un nuevo proyecto con las dependencias<\/h2>\n<p>Para que este ejemplo sea f\u00e1cil de entender, empezaremos desde cero. Dicho esto, se asume que ya tienes GoLang instalado y configurado en tu m\u00e1quina y que <a href=\"https:\/\/developer.couchbase.com\/server\/?utm_source=blogs&amp;utm_medium=link&amp;utm_campaign=blogs\">Servidor Couchbase<\/a> 4.5 ya est\u00e1 en marcha.<\/p>\n<p>Cree un nuevo proyecto GoLang. Mi proyecto se encuentra en <strong>$GOPATH\/src\/github.com\/nraboy\/cbfts\/main.go<\/strong>. Antes de saltar al c\u00f3digo, necesitamos instalar el SDK de Couchbase Go. Desde el s\u00edmbolo del sistema (Windows) o Terminal (Mac y Linux), ejecuta lo siguiente:<\/p>\n<pre><code>\r\ngo get github.com\/couchbase\/gocb\r\n<\/code><\/pre>\n<p>En este punto estamos listos para empezar a desarrollar, pero antes necesitamos configurar los \u00edndices necesarios en nuestro bucket de Couchbase.<\/p>\n<h2>Crear un \u00edndice de b\u00fasqueda de texto completo en Couchbase Server<\/h2>\n<p>Antes de empezar a utilizar la b\u00fasqueda de texto completo, debe crear un \u00edndice especial. Esto puede hacerse desde <strong>\u00cdndices -&gt; Texto completo<\/strong> del panel de control administrativo de Couchbase.<\/p>\n<p><img decoding=\"async\" src=\"\/wp-content\/original-assets\/2016\/july\/using-full-text-search-fts-with-couchbase-in-a-golang-application\/fts-create-index.gif\" \/><\/p>\n<p>En esta secci\u00f3n deber\u00e1 elegir <strong>Nuevo \u00edndice de texto completo<\/strong> y elige el nombre y el cubo sobre el que aplicarlo. Para este ejemplo utilizaremos el <strong>por defecto<\/strong> y un \u00edndice de <strong>b\u00fasqueda de curr\u00edculum<\/strong>. Nuestro \u00edndice ser\u00e1 muy b\u00e1sico, por lo que les animo a consultar el <a href=\"https:\/\/developer.couchbase.com\/documentation\/server\/current\/fts\/fts-creating-indexes.html#topic_ksl_wwk_1v\">documentaci\u00f3n<\/a> para que pueda satisfacer mejor sus necesidades.<\/p>\n<p>Una vez creado el \u00edndice, haga clic en el bot\u00f3n Actualizar. En este punto puedes probarlo a trav\u00e9s del panel de control o de tu propio c\u00f3digo.<\/p>\n<h2>Conocer el modelo de datos de ejemplo<\/h2>\n<p>Con el \u00edndice creado echemos un vistazo r\u00e1pido a nuestro modelo de datos. Sabemos que este va a ser un documento similar a un curriculum vitae, as\u00ed que con un poco de imaginaci\u00f3n, podemos llegar a algo como esto:<\/p>\n<pre><code>\r\n{\r\n    \"firstname\": \"Nic\",\r\n    \"lastname\": \"Raboy\",\r\n    \"skills\": [\r\n        \"java\",\r\n        \"node.js\",\r\n        \"golang\",\r\n        \"nosql\"\r\n    ],\r\n    \"summary\": \"I am a cool guy working on cool things\",\r\n    \"social\": {\r\n        \"github\": \"https:\/\/www.github.com\/nraboy\",\r\n        \"twitter\": \"https:\/\/www.twitter.com\/nraboy\"\r\n    },\r\n    \"employment\": [\r\n        {\r\n            \"employer\": \"Couchbase\",\r\n            \"title\": \"Developer Advocate\",\r\n            \"location\": \"San Francisco\"\r\n        }\r\n    ]\r\n}\r\n<\/code><\/pre>\n<p>El documento anterior contiene informaci\u00f3n como habilidades, informaci\u00f3n sobre redes sociales e historial laboral. S\u00ed, una verdadera solicitud de creaci\u00f3n de empleo probablemente tendr\u00e1 muchos m\u00e1s detalles, pero esto es solo un ejemplo.<\/p>\n<p>El \u00e1mbito al que vamos a prestar atenci\u00f3n es el texto <strong>Promotor<\/strong>. Vamos a escribir c\u00f3digo GoLang para buscar esa frase.<\/p>\n<h2>Desarrollo de la aplicaci\u00f3n para la b\u00fasqueda de datos<\/h2>\n<p>Como este proyecto es un ejemplo sencillo, todo el c\u00f3digo que escribamos estar\u00e1 en el \u00fanico archivo <strong>main.go<\/strong> archivo. Empecemos por importar todas las dependencias que se utilizar\u00e1n en la aplicaci\u00f3n:<\/p>\n<pre><code>\r\npackage main\r\n\r\nimport (\r\n \"encoding\/json\"\r\n \"fmt\"\r\n\r\n \"github.com\/couchbase\/gocb\"\r\n \"github.com\/couchbase\/gocb\/cbft\"\r\n)\r\n<\/code><\/pre>\n<p>Como puedes ver arriba, estamos incluyendo una dependencia JSON para marshalling estructuras en JSON. Tambi\u00e9n estamos importando la dependencia Couchbase y Couchbase FTS.<\/p>\n<p>Los datos que queremos recoger ser\u00e1n muy espec\u00edficos. Por ello, ser\u00eda una buena idea crear una nueva estructura de datos para acomodar esto. Llamemos a esta estructura <code>FtsHit<\/code> y que tenga el siguiente aspecto:<\/p>\n<pre><code>\r\ntype FtsHit struct {\r\n ID    string  `json:\"id,omitempty\"`\r\n Score float64 `json:\"score,omitempty\"`\r\n}\r\n<\/code><\/pre>\n<p>Mantendremos el id del documento que se encuentra en la b\u00fasqueda as\u00ed como la puntuaci\u00f3n que la b\u00fasqueda devuelve en cada acierto. Cada una de estas propiedades de estructura tiene sus propias etiquetas JSON y ser\u00e1n ignoradas si est\u00e1n vac\u00edas.<\/p>\n<p>Esto nos lleva al c\u00f3digo m\u00e1gico que se encuentra en nuestro <code>principal<\/code> funci\u00f3n.<\/p>\n<pre><code>\r\nfunc main() {\r\n cluster, _ := gocb.Connect(\"couchbase:\/\/localhost\")\r\n bucket, _ := cluster.OpenBucket(\"default\", \"\")\r\n query := gocb.NewSearchQuery(\"resume-search\", cbft.NewMatchQuery(\"developer advocate\"))\r\n result, _ := bucket.ExecuteSearchQuery(query)\r\n var ftsHit *FtsHit\r\n for _, hit := range result.Hits() {\r\n  ftsHit = &amp;FtsHit{ID: hit.Id, Score: hit.Score}\r\n  jsonHit, _ := json.Marshal(&amp;ftsHit)\r\n  fmt.Println(string(jsonHit))\r\n }\r\n}\r\n<\/code><\/pre>\n<p>Antes de empezar a buscar necesitamos establecer una conexi\u00f3n con nuestro cluster de Couchbase y abrir un bucket. Me conectar\u00e9 a un nodo local y a la base de datos <strong>por defecto<\/strong> cubo. Una vez conectados, podemos crear una nueva consulta de b\u00fasqueda de texto completo utilizando la consulta creada anteriormente <strong>b\u00fasqueda de curr\u00edculum<\/strong> \u00edndice. Esta consulta buscar\u00e1 el texto <strong>defensor del promotor<\/strong> en todos los documentos y en cualquier propiedad. Esencialmente, si el texto existe en cualquier parte de un documento, el documento se contar\u00e1 como un acierto.<\/p>\n<p>Con la consulta en la mano, podemos ejecutarla y recorrer los resultados. Cada resultado tendr\u00e1 ciertos fragmentos colocados en nuestro <code>FtsHit<\/code> donde se convertir\u00e1 en JSON y se imprimir\u00e1.<\/p>\n<p>Hasta aqu\u00ed todo bien, \u00bfverdad?<\/p>\n<p>\u00bfQu\u00e9 ocurre cuando queremos ser un poco m\u00e1s espec\u00edficos en nuestra b\u00fasqueda? Si bien es conveniente y genial poder buscar en todo un documento, tal vez s\u00f3lo queremos buscar dentro del historial de empleo.<\/p>\n<p>Podemos hacer un ajuste en el <code>B\u00fasquedaQuery<\/code> con poco esfuerzo:<\/p>\n<pre><code>\r\nquery := gocb.NewSearchQuery(\"resume-search\", cbft.NewMatchQuery(\"developer advocate\").Field(\"employment.title\"))\r\n<\/code><\/pre>\n<p>Aunque hemos intentado que este ejemplo sea sencillo, hay un mont\u00f3n de cosas interesantes que se pueden hacer con la b\u00fasqueda de texto completo. Quiz\u00e1s quieras expandir las condiciones de b\u00fasqueda para ser m\u00e1s espec\u00edfico, o quiz\u00e1s quieras usar un \u00edndice que sea m\u00e1s espec\u00edfico. M\u00e1s informaci\u00f3n sobre FTS se puede encontrar en el Couchbase <a href=\"https:\/\/developer.couchbase.com\/documentation\/server\/4.5\/sdk\/go\/full-text-searching-with-sdk.html\">documentaci\u00f3n para desarrolladores<\/a>.<\/p>\n<h2>Conclusi\u00f3n<\/h2>\n<p>Acabamos de ver lo f\u00e1cil que es hacer uso de la b\u00fasqueda de texto completo (FTS) en Couchbase utilizando el lenguaje de programaci\u00f3n Go. Usando FTS, podemos buscar dentro de documentos de forma m\u00e1s eficiente que usando consultas que incluyen un mont\u00f3n de comodines.<\/p>\n<p>Para saber m\u00e1s sobre el FTS, visite <a href=\"https:\/\/developer.couchbase.com\/?utm_source=blogs&amp;utm_medium=link&amp;utm_campaign=blogs\">Portal para desarrolladores de Couchbase<\/a>.<\/p>","protected":false},"excerpt":{"rendered":"<p>I recently wrote about using Full Text Search (FTS) in a Node.js application that makes use of Couchbase Server 4.5 and higher. As you may know, FTS is available as Developer Preview starting in Couchbase Server 4.5. This is huge [&hellip;]<\/p>","protected":false},"author":63,"featured_media":13873,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"inline_featured_image":false,"footnotes":""},"categories":[1814,1816,2165,1820,1812],"tags":[],"ppma_author":[9032],"class_list":["post-2341","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-application-design","category-couchbase-server","category-full-text-search","category-golang","category-n1ql-query"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v25.8 (Yoast SEO v25.8) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>FTS with Couchbase in a GoLang Application - 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\/using-full-text-search-fts-with-couchbase-in-a-golang-application\/\" \/>\n<meta property=\"og:locale\" content=\"es_MX\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Using Full Text Search (FTS) with Couchbase in a GoLang Application\" \/>\n<meta property=\"og:description\" content=\"I recently wrote about using Full Text Search (FTS) in a Node.js application that makes use of Couchbase Server 4.5 and higher. As you may know, FTS is available as Developer Preview starting in Couchbase Server 4.5. This is huge [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.couchbase.com\/blog\/es\/using-full-text-search-fts-with-couchbase-in-a-golang-application\/\" \/>\n<meta property=\"og:site_name\" content=\"The Couchbase Blog\" \/>\n<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/thepolyglotdeveloper\" \/>\n<meta property=\"article:published_time\" content=\"2016-07-21T15:00:00+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-06-14T04:20:51+00:00\" \/>\n<meta name=\"author\" content=\"Nic Raboy, Developer Advocate, Couchbase\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@nraboy\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Nic Raboy, Developer Advocate, Couchbase\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"5 minutos\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/using-full-text-search-fts-with-couchbase-in-a-golang-application\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/using-full-text-search-fts-with-couchbase-in-a-golang-application\/\"},\"author\":{\"name\":\"Nic Raboy, Developer Advocate, Couchbase\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/bb545ebe83bb2d12f91095811d0a72e1\"},\"headline\":\"Using Full Text Search (FTS) with Couchbase in a GoLang Application\",\"datePublished\":\"2016-07-21T15:00:00+00:00\",\"dateModified\":\"2025-06-14T04:20:51+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/using-full-text-search-fts-with-couchbase-in-a-golang-application\/\"},\"wordCount\":961,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/using-full-text-search-fts-with-couchbase-in-a-golang-application\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png\",\"articleSection\":[\"Application Design\",\"Couchbase Server\",\"Full-Text Search\",\"GoLang\",\"SQL++ \/ N1QL Query\"],\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.couchbase.com\/blog\/using-full-text-search-fts-with-couchbase-in-a-golang-application\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/using-full-text-search-fts-with-couchbase-in-a-golang-application\/\",\"url\":\"https:\/\/www.couchbase.com\/blog\/using-full-text-search-fts-with-couchbase-in-a-golang-application\/\",\"name\":\"FTS with Couchbase in a GoLang Application - The Couchbase Blog\",\"isPartOf\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/using-full-text-search-fts-with-couchbase-in-a-golang-application\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/using-full-text-search-fts-with-couchbase-in-a-golang-application\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png\",\"datePublished\":\"2016-07-21T15:00:00+00:00\",\"dateModified\":\"2025-06-14T04:20:51+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/using-full-text-search-fts-with-couchbase-in-a-golang-application\/#breadcrumb\"},\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.couchbase.com\/blog\/using-full-text-search-fts-with-couchbase-in-a-golang-application\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/using-full-text-search-fts-with-couchbase-in-a-golang-application\/#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\/using-full-text-search-fts-with-couchbase-in-a-golang-application\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.couchbase.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Using Full Text Search (FTS) with Couchbase in a GoLang Application\"}]},{\"@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\/bb545ebe83bb2d12f91095811d0a72e1\",\"name\":\"Nic Raboy, Developer Advocate, Couchbase\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/image\/8863514d8bed0cf6080f23db40e00354\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/bedeb68368d4681aca4c74fe5f697f0c423b80d498ec50fd915ba018b72c101f?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/bedeb68368d4681aca4c74fe5f697f0c423b80d498ec50fd915ba018b72c101f?s=96&d=mm&r=g\",\"caption\":\"Nic Raboy, Developer Advocate, Couchbase\"},\"description\":\"Nic Raboy is an advocate of modern web and mobile development technologies. He has experience in Java, JavaScript, Golang and a variety of frameworks such as Angular, NativeScript, and Apache Cordova. Nic writes about his development experiences related to making web and mobile development easier to understand.\",\"sameAs\":[\"https:\/\/www.thepolyglotdeveloper.com\",\"https:\/\/www.facebook.com\/thepolyglotdeveloper\",\"https:\/\/x.com\/nraboy\"],\"url\":\"https:\/\/www.couchbase.com\/blog\/es\/author\/nic-raboy-2\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"FTS with Couchbase in a GoLang Application - 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\/using-full-text-search-fts-with-couchbase-in-a-golang-application\/","og_locale":"es_MX","og_type":"article","og_title":"Using Full Text Search (FTS) with Couchbase in a GoLang Application","og_description":"I recently wrote about using Full Text Search (FTS) in a Node.js application that makes use of Couchbase Server 4.5 and higher. As you may know, FTS is available as Developer Preview starting in Couchbase Server 4.5. This is huge [&hellip;]","og_url":"https:\/\/www.couchbase.com\/blog\/es\/using-full-text-search-fts-with-couchbase-in-a-golang-application\/","og_site_name":"The Couchbase Blog","article_author":"https:\/\/www.facebook.com\/thepolyglotdeveloper","article_published_time":"2016-07-21T15:00:00+00:00","article_modified_time":"2025-06-14T04:20:51+00:00","author":"Nic Raboy, Developer Advocate, Couchbase","twitter_card":"summary_large_image","twitter_creator":"@nraboy","twitter_misc":{"Written by":"Nic Raboy, Developer Advocate, Couchbase","Est. reading time":"5 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.couchbase.com\/blog\/using-full-text-search-fts-with-couchbase-in-a-golang-application\/#article","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/using-full-text-search-fts-with-couchbase-in-a-golang-application\/"},"author":{"name":"Nic Raboy, Developer Advocate, Couchbase","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/bb545ebe83bb2d12f91095811d0a72e1"},"headline":"Using Full Text Search (FTS) with Couchbase in a GoLang Application","datePublished":"2016-07-21T15:00:00+00:00","dateModified":"2025-06-14T04:20:51+00:00","mainEntityOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/using-full-text-search-fts-with-couchbase-in-a-golang-application\/"},"wordCount":961,"commentCount":0,"publisher":{"@id":"https:\/\/www.couchbase.com\/blog\/#organization"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/using-full-text-search-fts-with-couchbase-in-a-golang-application\/#primaryimage"},"thumbnailUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png","articleSection":["Application Design","Couchbase Server","Full-Text Search","GoLang","SQL++ \/ N1QL Query"],"inLanguage":"es","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.couchbase.com\/blog\/using-full-text-search-fts-with-couchbase-in-a-golang-application\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.couchbase.com\/blog\/using-full-text-search-fts-with-couchbase-in-a-golang-application\/","url":"https:\/\/www.couchbase.com\/blog\/using-full-text-search-fts-with-couchbase-in-a-golang-application\/","name":"FTS with Couchbase in a GoLang Application - The Couchbase Blog","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/using-full-text-search-fts-with-couchbase-in-a-golang-application\/#primaryimage"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/using-full-text-search-fts-with-couchbase-in-a-golang-application\/#primaryimage"},"thumbnailUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png","datePublished":"2016-07-21T15:00:00+00:00","dateModified":"2025-06-14T04:20:51+00:00","breadcrumb":{"@id":"https:\/\/www.couchbase.com\/blog\/using-full-text-search-fts-with-couchbase-in-a-golang-application\/#breadcrumb"},"inLanguage":"es","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.couchbase.com\/blog\/using-full-text-search-fts-with-couchbase-in-a-golang-application\/"]}]},{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/www.couchbase.com\/blog\/using-full-text-search-fts-with-couchbase-in-a-golang-application\/#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\/using-full-text-search-fts-with-couchbase-in-a-golang-application\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.couchbase.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Using Full Text Search (FTS) with Couchbase in a GoLang Application"}]},{"@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\/bb545ebe83bb2d12f91095811d0a72e1","name":"Nic Raboy, Defensor del Desarrollador, Couchbase","image":{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/image\/8863514d8bed0cf6080f23db40e00354","url":"https:\/\/secure.gravatar.com\/avatar\/bedeb68368d4681aca4c74fe5f697f0c423b80d498ec50fd915ba018b72c101f?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/bedeb68368d4681aca4c74fe5f697f0c423b80d498ec50fd915ba018b72c101f?s=96&d=mm&r=g","caption":"Nic Raboy, Developer Advocate, Couchbase"},"description":"Nic Raboy es un defensor de las tecnolog\u00edas modernas de desarrollo web y m\u00f3vil. Tiene experiencia en Java, JavaScript, Golang y una variedad de frameworks como Angular, NativeScript y Apache Cordova. Nic escribe sobre sus experiencias de desarrollo relacionadas con hacer el desarrollo web y m\u00f3vil m\u00e1s f\u00e1cil de entender.","sameAs":["https:\/\/www.thepolyglotdeveloper.com","https:\/\/www.facebook.com\/thepolyglotdeveloper","https:\/\/x.com\/nraboy"],"url":"https:\/\/www.couchbase.com\/blog\/es\/author\/nic-raboy-2\/"}]}},"authors":[{"term_id":9032,"user_id":63,"is_guest":0,"slug":"nic-raboy-2","display_name":"Nic Raboy, Developer Advocate, Couchbase","avatar_url":"https:\/\/secure.gravatar.com\/avatar\/bedeb68368d4681aca4c74fe5f697f0c423b80d498ec50fd915ba018b72c101f?s=96&d=mm&r=g","author_category":"","last_name":"Raboy","first_name":"Nic","job_title":"","user_url":"https:\/\/www.thepolyglotdeveloper.com","description":"Nic Raboy es un defensor de las tecnolog\u00edas modernas de desarrollo web y m\u00f3vil. Tiene experiencia en Java, JavaScript, Golang y una variedad de frameworks como Angular, NativeScript y Apache Cordova. Nic escribe sobre sus experiencias de desarrollo relacionadas con hacer el desarrollo web y m\u00f3vil m\u00e1s f\u00e1cil de entender."}],"_links":{"self":[{"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/posts\/2341","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\/63"}],"replies":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/comments?post=2341"}],"version-history":[{"count":0,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/posts\/2341\/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=2341"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/categories?post=2341"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/tags?post=2341"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/ppma_author?post=2341"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}