{"id":11156,"date":"2021-05-10T02:37:44","date_gmt":"2021-05-10T09:37:44","guid":{"rendered":"https:\/\/www.couchbase.com\/blog\/?p=11156"},"modified":"2025-06-13T20:27:34","modified_gmt":"2025-06-14T03:27:34","slug":"the-life-of-a-full-text-search-query","status":"publish","type":"post","link":"https:\/\/www.couchbase.com\/blog\/pt\/the-life-of-a-full-text-search-query\/","title":{"rendered":"A vida de uma consulta de pesquisa de texto completo"},"content":{"rendered":"<p>Este artigo t\u00e9cnico mostra a vida de uma consulta de pesquisa de texto completo em um sistema Couchbase distribu\u00eddo, desde a origem de um cliente at\u00e9 o recebimento de uma resposta.<\/p>\r\n\r\n\r\n\r\n<p>Antes de mergulhar no mundo do servidor, um pouco sobre o cliente - aqui est\u00e1 onde ou o que ele poderia ser ...<\/p>\r\n\r\n\r\n\r\n<ul class=\"wp-block-list\">\r\n<li>em um sistema em que o usu\u00e1rio tem um aplicativo\/programa que usa um dos SDKs do Couchbase ou simplesmente uma solicita\u00e7\u00e3o curl\/HTTP (REST) digitada para se conectar a um cluster distribu\u00eddo do Couchbase<\/li>\r\n<li>a interface de usu\u00e1rio de pesquisa do Couchbase em um dos servidores do cluster<\/li>\r\n<li>o workbench de consulta do Couchbase em um dos servidores do cluster<\/li>\r\n<li>a interface de linha de comando de consulta do Couchbase em um dos servidores do cluster<\/li>\r\n<\/ul>\r\n\r\n\r\n\r\n<p>Acho que este \u00e9 o momento certo para saber (se voc\u00ea ainda n\u00e3o sabe) que o Couchbase hospeda um servi\u00e7o distribu\u00eddo de pesquisa de texto completo que requer configura\u00e7\u00e3o. Isso significa que, se voc\u00ea configurar um \u00edndice do Full Text Search em um desses clusters para ingerir dados de um bucket do Couchbase, ter\u00e1 permiss\u00e3o para particionar o \u00edndice entre v\u00e1rios servidores.<\/p>\r\n\r\n\r\n\r\n<p>Se voc\u00ea n\u00e3o estiver familiarizado com a configura\u00e7\u00e3o de um \u00edndice de pesquisa de texto completo no Couchbase, talvez seja uma boa hora para dar uma olhada em nossa documenta\u00e7\u00e3o <a href=\"https:\/\/docs.couchbase.com\/server\/6.6\/fts\/full-text-intro.html\">aqui<\/a>. Para obter detalhes sobre os v\u00e1rios tipos de consultas que o servi\u00e7o de pesquisa suporta, clique em <a href=\"https:\/\/docs.couchbase.com\/server\/6.6\/fts\/fts-query-types.html\">aqui<\/a>.<\/p>\r\n\r\n\r\n\r\n<p>Um usu\u00e1rio avan\u00e7ado provavelmente dividiria seu \u00edndice em parti\u00e7\u00f5es suficientes para que os dados indexados fossem distribu\u00eddos uniformemente (mais ou menos) pelo cluster de servidores que hospedam o servi\u00e7o de \"pesquisa\". Eles tamb\u00e9m N\u00c3O precisar\u00e3o se preocupar com a pesquisa nos dados distribu\u00eddos quando fizerem uma consulta ao sistema - os servi\u00e7os de pesquisa se comunicar\u00e3o dentro do cluster para reunir uma resposta completa para o usu\u00e1rio.<\/p>\r\n\r\n\r\n\r\n<p>Antes de entrarmos em detalhes, aqui est\u00e1 um GIF que ilustra um usu\u00e1rio que recebe uma resposta depois de enviar uma solicita\u00e7\u00e3o (consulta) de um cliente. Seu cluster do Couchbase tem um \u00edndice de pesquisa de texto completo que \u00e9 particionado em <strong>seis<\/strong> pe\u00e7as sobre <strong>tr\u00eas<\/strong> servidores que hospedam o servi\u00e7o de pesquisa.<\/p>\r\n\r\n\r\n\r\n<div class=\"wp-block-image\">\r\n<figure class=\"aligncenter\"><img decoding=\"async\" src=\"https:\/\/lh6.googleusercontent.com\/XKrIMUcBnjNF4ctForwXdFe3zH4PiP5V6--Ffw7HTeXZTzyPre6BSQ9SF5dNwwkx_vvuwLJT3Q-eH8zzOB2Js2HqjpugBIFNgucKni1dZHFfMTCtopGPoJWQn-J-dMc88LGpCZVT\" alt=\"\" \/><\/figure>\r\n<\/div>\r\n\r\n\r\n\r\n<p>Uma consulta de pesquisa de texto completo, uma vez criada no cliente, pode ser direcionada a qualquer servidor no cluster do Couchbase que hospeda o servi\u00e7o de pesquisa. Aqui est\u00e3o os est\u00e1gios pelos quais ela passa...<\/p>\r\n\r\n\r\n\r\n<ol class=\"wp-block-list\">\r\n<li>O servidor para o qual o cliente direciona a solicita\u00e7\u00e3o de pesquisa assume a fun\u00e7\u00e3o do orquestrador ou do <strong>n\u00f3 de coordena\u00e7\u00e3o<\/strong> assim que receber a solicita\u00e7\u00e3o externa.<\/li>\r\n<\/ol>\r\n\r\n\r\n\r\n<ol class=\"wp-block-list\" start=\"2\">\r\n<li>O n\u00f3 de coordena\u00e7\u00e3o primeiro procura o \u00edndice (certificando-se de que ele existe).<\/li>\r\n<\/ol>\r\n\r\n\r\n\r\n<ol class=\"wp-block-list\" start=\"3\">\r\n<li>O n\u00f3 de coordena\u00e7\u00e3o obt\u00e9m o \"plano\" com o qual o \u00edndice foi implantado. O plano cont\u00e9m detalhes sobre em quantas parti\u00e7\u00f5es o \u00edndice foi dividido e todas as informa\u00e7\u00f5es dos servidores onde qualquer uma dessas parti\u00e7\u00f5es reside.<\/li>\r\n<\/ol>\r\n\r\n\r\n\r\n<ol class=\"wp-block-list\" start=\"4\">\r\n<li>O n\u00f3 de coordena\u00e7\u00e3o define uma lista exclusiva de servidores para os quais ele precisa enviar uma solicita\u00e7\u00e3o \"interna\". Um servidor no cluster do Couchbase \u00e9 eleg\u00edvel se e somente se ele hospedar uma parti\u00e7\u00e3o pertencente ao \u00edndice em considera\u00e7\u00e3o.<\/li>\r\n<\/ol>\r\n\r\n\r\n\r\n<ol class=\"wp-block-list\" start=\"5\">\r\n<li>Depois que as solicita\u00e7\u00f5es internas forem despachadas pelo n\u00f3 de coordena\u00e7\u00e3o para cada um dos servidores, ele aguardar\u00e1 o retorno deles. Simultaneamente, se alguma das parti\u00e7\u00f5es do \u00edndice estiver residente no n\u00f3 de coordena\u00e7\u00e3o, as solicita\u00e7\u00f5es de pesquisa tamb\u00e9m ser\u00e3o enviadas para cada uma dessas parti\u00e7\u00f5es (vinculadas ao disco).<\/li>\r\n<\/ol>\r\n\r\n\r\n\r\n<ol class=\"wp-block-list\" start=\"6\">\r\n<li>Os servidores do cluster que receberem a solicita\u00e7\u00e3o \"interna\" do n\u00f3 de coordena\u00e7\u00e3o a encaminhar\u00e3o para cada uma das parti\u00e7\u00f5es de \u00edndice que hospedam (vinculadas ao disco).<\/li>\r\n<\/ol>\r\n\r\n\r\n\r\n<ol class=\"wp-block-list\" start=\"7\">\r\n<li>Solicita\u00e7\u00f5es de pesquisa separadas que s\u00e3o enviadas simultaneamente a todas as parti\u00e7\u00f5es de \u00edndice residentes em um servidor, e o servidor aguarda o retorno delas.<\/li>\r\n<\/ol>\r\n\r\n\r\n\r\n<ol class=\"wp-block-list\" start=\"8\">\r\n<li>Depois que o servidor recebe o retorno de todas as parti\u00e7\u00f5es que hospeda, ele mescla os resultados obtidos de cada uma das parti\u00e7\u00f5es antes de empacot\u00e1-los em uma resposta e envi\u00e1-la de volta ao n\u00f3 de coordena\u00e7\u00e3o.<\/li>\r\n<\/ol>\r\n\r\n\r\n\r\n<ol class=\"wp-block-list\" start=\"9\">\r\n<li>Em resumo, o n\u00f3 de coordena\u00e7\u00e3o aguarda as respostas de ...\r\n<ul>\r\n<li>cada uma das parti\u00e7\u00f5es de \u00edndice residentes no n\u00f3<\/li>\r\n<li>cada um dos servidores do cluster para os quais ele enviou a solicita\u00e7\u00e3o interna<\/li>\r\n<\/ul>\r\n<\/li>\r\n<\/ol>\r\n\r\n\r\n\r\n<ol class=\"wp-block-list\" start=\"10\">\r\n<li>Depois que todos os resultados das parti\u00e7\u00f5es de \u00edndice local e das parti\u00e7\u00f5es de \u00edndice remoto s\u00e3o obtidos, o n\u00f3 de coordena\u00e7\u00e3o mescla todos eles, empacota-os em uma resposta e os envia de volta ao cliente de origem da solicita\u00e7\u00e3o.<\/li>\r\n<\/ol>\r\n\r\n\r\n\r\n<p>Essa sequ\u00eancia de etapas \u00e9 o que n\u00f3s, aqui no Couchbase, chamamos de <em>dispers\u00e3o-coleta<\/em> opera\u00e7\u00e3o.<\/p>\r\n\r\n\r\n\r\n<p>A solicita\u00e7\u00e3o de pesquisa que o usu\u00e1rio precisa montar no cliente encapsula a consulta de pesquisa e, opcionalmente, uma s\u00e9rie de filtros para pagina\u00e7\u00e3o, classifica\u00e7\u00e3o, pontua\u00e7\u00e3o etc. Clique em <a href=\"https:\/\/docs.couchbase.com\/server\/6.6\/fts\/fts-queries.html\">aqui<\/a> para obter documenta\u00e7\u00e3o sobre as configura\u00e7\u00f5es de solicita\u00e7\u00e3o de pesquisa e as op\u00e7\u00f5es dispon\u00edveis. Aqui est\u00e1 um exemplo de solicita\u00e7\u00e3o de pesquisa no \u00edndice <code>viagens<\/code> usando curl ...<\/p>\r\n\r\n\r\n\r\n<pre class=\"wp-block-preformatted\">curl -XPOST -H \"Content-type:application\/json\" -u username:password\r\nhttps:\/\/127.0.0.1:8094\/api\/index\/travels\/query -d\r\n'{\"query\": {\"match\": \"travel\"}, \"size\": 3}'<\/pre>\r\n\r\n\r\n\r\n<p>Assim como a solicita\u00e7\u00e3o de pesquisa, a resposta da pesquisa tamb\u00e9m est\u00e1 no formato JSON. Aqui est\u00e1 um exemplo de resposta que mostra os tr\u00eas principais resultados agregados de seis parti\u00e7\u00f5es de \u00edndice para a solicita\u00e7\u00e3o acima ...<\/p>\r\n\r\n\r\n\r\n<pre class=\"wp-block-preformatted\">{\r\n  \"status\": {\r\n    \"total\": 6,\r\n    \"failed\": 0,\r\n    \"successful\": 6\r\n  },\r\n  \"request\": {\r\n    \"query\": {\r\n      \"match\": \"travel\",\r\n      \"prefix_length\": 0,\r\n      \"fuzziness\": 0,\r\n      \"operator\": \"or\"\r\n    },\r\n    \"size\": 3,\r\n    \"from\": 0,\r\n    \"highlight\": null,\r\n    \"fields\": null,\r\n    \"facets\": null,\r\n    \"explain\": false,\r\n    \"sort\": [\r\n        \"-_score\"\r\n    ],\r\n    \"includeLocations\": false,\r\n    \"search_after\": null,\r\n    \"search_before\": null\r\n  },\r\n  \"hits\": [\r\n    {\r\n      \"index\": \"travels_171257755a51518a_54820232\",\r\n      \"id\": \"landmark_22398\",\r\n      \"score\": 0.7297252942480978,\r\n      \"sort\": [\r\n        \"_score\"\r\n      ]\r\n    },\r\n    {\r\n      \"index\": \"travels_171257755a51518a_13aa53f3\",\r\n      \"id\": \"landmark_12338\",\r\n      \"score\": 0.6413638317042266,\r\n      \"sort\": [\r\n        \"_score\"\r\n      ]\r\n    },\r\n    {\r\n      \"index\": \"travels_171257755a51518a_f4e0a48a\",\r\n      \"id\": \"landmark_7369\",\r\n      \"score\": 0.6156080123720656,\r\n      \"sort\": [\r\n        \"_score\"\r\n      ]\r\n    }\r\n  ],\r\n  \"total_hits\": 205,\r\n  \"max_score\": 0.7297252942480978,\r\n  \"took\": 804766,\r\n  \"facets\": null\r\n}<\/pre>\r\n\r\n\r\n\r\n<p>Quanto ao conte\u00fado da resposta da pesquisa ...<\/p>\r\n\r\n\r\n\r\n<ul class=\"wp-block-list\">\r\n<li>O \"<strong>status<\/strong>O campo \" cont\u00e9m ...\r\n<ul>\r\n<li>o \"<strong>total<\/strong>\" n\u00famero de parti\u00e7\u00f5es do \u00edndice das quais os resultados foram obtidos e mesclados<\/li>\r\n<li>o n\u00famero dessas parti\u00e7\u00f5es que eram \"<strong>bem-sucedido<\/strong>\" ao responder \u00e0 solicita\u00e7\u00e3o<\/li>\r\n<li>o n\u00famero dessas parti\u00e7\u00f5es que \"<strong>falhou<\/strong>\" para responder \u00e0 solicita\u00e7\u00e3o por qualquer motivo<\/li>\r\n<\/ul>\r\n<\/li>\r\n<li>O \"<strong>solicita\u00e7\u00e3o<\/strong>O campo \" cont\u00e9m a solicita\u00e7\u00e3o de pesquisa (consulta) que foi recebida do cliente.<\/li>\r\n<li>&#8220;<strong>sucessos<\/strong>\" \u00e9 uma matriz de objetos, em que cada objeto \u00e9 essencialmente um resultado ou uma ocorr\u00eancia de documento.\r\n<ul>\r\n<li>O \"<strong>\u00edndice<\/strong>O campo \" em cada objeto \u00e9 a parti\u00e7\u00e3o do \u00edndice em que o documento reside<\/li>\r\n<li>O \"<strong>id<\/strong>\" \u00e9 a chave do documento inserida no bucket do couchbase<\/li>\r\n<li>O \"<strong>pontua\u00e7\u00e3o<\/strong>\" \u00e9 a relev\u00e2ncia do documento para os par\u00e2metros de pesquisa, calculada usando o <a href=\"https:\/\/en.wikipedia.org\/wiki\/Tf%E2%80%93idf\">tf-idf<\/a> algoritmo.<\/li>\r\n<li>O \"<strong>classificar<\/strong>\" indica qual campo foi usado para ordenar os resultados obtidos.<\/li>\r\n<\/ul>\r\n<\/li>\r\n<li>&#8220;<strong>total_hits<\/strong>\" \u00e9 o n\u00famero total de resultados dispon\u00edveis para a solicita\u00e7\u00e3o de pesquisa (consulta).<\/li>\r\n<li>&#8220;<strong>pontua\u00e7\u00e3o m\u00e1xima<\/strong>\" \u00e9 a pontua\u00e7\u00e3o m\u00e1xima de tf-idf (relev\u00e2ncia) para qualquer uma das ocorr\u00eancias do documento.<\/li>\r\n<li>&#8220;<strong>pegou<\/strong>\" \u00e9 o tempo, em nanossegundos, que o n\u00f3 de coordena\u00e7\u00e3o leva para processar a solicita\u00e7\u00e3o e enviar a resposta agregada.<\/li>\r\n<li>&#8220;<strong>facetas<\/strong>\" cont\u00e9m conte\u00fado relevante se a consulta de pesquisa solicitar qualquer faceta\/informa\u00e7\u00e3o agregada.<\/li>\r\n<\/ul>\r\n\r\n\r\n\r\n<p>Al\u00e9m disso, n\u00e3o foram inclu\u00eddos nessa resposta de pesquisa...<\/p>\r\n\r\n\r\n\r\n<ul class=\"wp-block-list\">\r\n<li>Se alguma das parti\u00e7\u00f5es de \u00edndice n\u00e3o conseguir responder \u00e0 solicita\u00e7\u00e3o devido a algum erro, uma mensagem separada \"<strong>erros<\/strong>\" ser\u00e1 inclu\u00eddo, indicando a natureza do(s) erro(s). Aqui est\u00e1 um exemplo ...<\/li>\r\n<\/ul>\r\n\r\n\r\n\r\n<pre class=\"wp-block-preformatted\">\"status\": {\r\n  \"total\": 6,\r\n  \"failed\": 2,\r\n  \"successful\": 4,\r\n  \"errors\": {\r\n    \"pindex_name_1\": \"reason for failure\",\r\n    \"pindex_name_2\": \"reason for failure\"\r\n    \r\n  }\r\n}<\/pre>\r\n\r\n\r\n\r\n<ul class=\"wp-block-list\">\r\n<li>O exemplo acima \u00e9 uma situa\u00e7\u00e3o em que o servi\u00e7o de pesquisa responde ao usu\u00e1rio com uma resposta \"parcial\" de resultados agregados apenas das parti\u00e7\u00f5es de \u00edndice que foram bem-sucedidas. O usu\u00e1rio deve investigar a integridade de um cluster e o que fez com que algumas das parti\u00e7\u00f5es de \u00edndice falhassem ou deixassem de responder.<\/li>\r\n<\/ul>\r\n\r\n\r\n<hr class=\"wp-block-separator\" \/>\r\n\r\n\r\n<p>Espero que este artigo seja \u00fatil para voc\u00ea. Obtenha a vers\u00e3o mais recente do Couchbase Server no site <a href=\"https:\/\/www.couchbase.com\/blog\/pt\/downloads\/\">Downloads<\/a> p\u00e1gina!<\/p>","protected":false},"excerpt":{"rendered":"<p>This technical article showcases the life of a Full Text Search query through a distributed Couchbase system as it originates from a client to until a response is received. Before diving into the server world, a little about the client [&hellip;]<\/p>","protected":false},"author":37266,"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,2165,1812],"tags":[8622],"ppma_author":[8925],"class_list":["post-11156","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-couchbase-server","category-full-text-search","category-n1ql-query","tag-distributed-search"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v26.4 (Yoast SEO v26.4) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>The life of a Full Text Search query - The Couchbase Blog<\/title>\n<meta name=\"description\" content=\"This article showcases the life of a Full Text Search query through a distributed Couchbase system.\" \/>\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\/the-life-of-a-full-text-search-query\/\" \/>\n<meta property=\"og:locale\" content=\"pt_BR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"The life of a Full Text Search query\" \/>\n<meta property=\"og:description\" content=\"This article showcases the life of a Full Text Search query through a distributed Couchbase system.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.couchbase.com\/blog\/pt\/the-life-of-a-full-text-search-query\/\" \/>\n<meta property=\"og:site_name\" content=\"The Couchbase Blog\" \/>\n<meta property=\"article:published_time\" content=\"2021-05-10T09:37:44+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-06-14T03:27:34+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/lh6.googleusercontent.com\/XKrIMUcBnjNF4ctForwXdFe3zH4PiP5V6--Ffw7HTeXZTzyPre6BSQ9SF5dNwwkx_vvuwLJT3Q-eH8zzOB2Js2HqjpugBIFNgucKni1dZHFfMTCtopGPoJWQn-J-dMc88LGpCZVT\" \/>\n<meta name=\"author\" content=\"Abhinav Dangeti, Software Engineer\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Abhinav Dangeti, Software Engineer\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"6 minutos\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/the-life-of-a-full-text-search-query\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/the-life-of-a-full-text-search-query\/\"},\"author\":{\"name\":\"Abhinav Dangeti, Software Engineering, Couchbase inc.\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/574480df99d76a8837bba934d7324711\"},\"headline\":\"The life of a Full Text Search query\",\"datePublished\":\"2021-05-10T09:37:44+00:00\",\"dateModified\":\"2025-06-14T03:27:34+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/the-life-of-a-full-text-search-query\/\"},\"wordCount\":1125,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/the-life-of-a-full-text-search-query\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png\",\"keywords\":[\"distributed search\"],\"articleSection\":[\"Couchbase Server\",\"Full-Text Search\",\"SQL++ \/ N1QL Query\"],\"inLanguage\":\"pt-BR\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.couchbase.com\/blog\/the-life-of-a-full-text-search-query\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/the-life-of-a-full-text-search-query\/\",\"url\":\"https:\/\/www.couchbase.com\/blog\/the-life-of-a-full-text-search-query\/\",\"name\":\"The life of a Full Text Search query - The Couchbase Blog\",\"isPartOf\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/the-life-of-a-full-text-search-query\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/the-life-of-a-full-text-search-query\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png\",\"datePublished\":\"2021-05-10T09:37:44+00:00\",\"dateModified\":\"2025-06-14T03:27:34+00:00\",\"description\":\"This article showcases the life of a Full Text Search query through a distributed Couchbase system.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/the-life-of-a-full-text-search-query\/#breadcrumb\"},\"inLanguage\":\"pt-BR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.couchbase.com\/blog\/the-life-of-a-full-text-search-query\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-BR\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/the-life-of-a-full-text-search-query\/#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\/the-life-of-a-full-text-search-query\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.couchbase.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"The life of a Full Text Search query\"}]},{\"@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\/574480df99d76a8837bba934d7324711\",\"name\":\"Abhinav Dangeti, Software Engineering, Couchbase inc.\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-BR\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/image\/9fa9293925a63fb1fab65e43636c534b\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/6119ccf4cd5cba9ca4abd6f338d737445c23575e60f2b2729806c28185d0ee9b?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/6119ccf4cd5cba9ca4abd6f338d737445c23575e60f2b2729806c28185d0ee9b?s=96&d=mm&r=g\",\"caption\":\"Abhinav Dangeti, Software Engineering, Couchbase inc.\"},\"description\":\"Work on Couchbase's Distributed Full Text Search\",\"url\":\"https:\/\/www.couchbase.com\/blog\/pt\/author\/abhinav\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"The life of a Full Text Search query - The Couchbase Blog","description":"Este artigo mostra a vida de uma consulta de pesquisa de texto completo por meio de um sistema Couchbase distribu\u00eddo.","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\/the-life-of-a-full-text-search-query\/","og_locale":"pt_BR","og_type":"article","og_title":"The life of a Full Text Search query","og_description":"This article showcases the life of a Full Text Search query through a distributed Couchbase system.","og_url":"https:\/\/www.couchbase.com\/blog\/pt\/the-life-of-a-full-text-search-query\/","og_site_name":"The Couchbase Blog","article_published_time":"2021-05-10T09:37:44+00:00","article_modified_time":"2025-06-14T03:27:34+00:00","og_image":[{"url":"https:\/\/lh6.googleusercontent.com\/XKrIMUcBnjNF4ctForwXdFe3zH4PiP5V6--Ffw7HTeXZTzyPre6BSQ9SF5dNwwkx_vvuwLJT3Q-eH8zzOB2Js2HqjpugBIFNgucKni1dZHFfMTCtopGPoJWQn-J-dMc88LGpCZVT","type":"","width":"","height":""}],"author":"Abhinav Dangeti, Software Engineer","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Abhinav Dangeti, Software Engineer","Est. reading time":"6 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.couchbase.com\/blog\/the-life-of-a-full-text-search-query\/#article","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/the-life-of-a-full-text-search-query\/"},"author":{"name":"Abhinav Dangeti, Software Engineering, Couchbase inc.","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/574480df99d76a8837bba934d7324711"},"headline":"The life of a Full Text Search query","datePublished":"2021-05-10T09:37:44+00:00","dateModified":"2025-06-14T03:27:34+00:00","mainEntityOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/the-life-of-a-full-text-search-query\/"},"wordCount":1125,"commentCount":0,"publisher":{"@id":"https:\/\/www.couchbase.com\/blog\/#organization"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/the-life-of-a-full-text-search-query\/#primaryimage"},"thumbnailUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png","keywords":["distributed search"],"articleSection":["Couchbase Server","Full-Text Search","SQL++ \/ N1QL Query"],"inLanguage":"pt-BR","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.couchbase.com\/blog\/the-life-of-a-full-text-search-query\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.couchbase.com\/blog\/the-life-of-a-full-text-search-query\/","url":"https:\/\/www.couchbase.com\/blog\/the-life-of-a-full-text-search-query\/","name":"The life of a Full Text Search query - The Couchbase Blog","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/the-life-of-a-full-text-search-query\/#primaryimage"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/the-life-of-a-full-text-search-query\/#primaryimage"},"thumbnailUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png","datePublished":"2021-05-10T09:37:44+00:00","dateModified":"2025-06-14T03:27:34+00:00","description":"Este artigo mostra a vida de uma consulta de pesquisa de texto completo por meio de um sistema Couchbase distribu\u00eddo.","breadcrumb":{"@id":"https:\/\/www.couchbase.com\/blog\/the-life-of-a-full-text-search-query\/#breadcrumb"},"inLanguage":"pt-BR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.couchbase.com\/blog\/the-life-of-a-full-text-search-query\/"]}]},{"@type":"ImageObject","inLanguage":"pt-BR","@id":"https:\/\/www.couchbase.com\/blog\/the-life-of-a-full-text-search-query\/#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\/the-life-of-a-full-text-search-query\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.couchbase.com\/blog\/"},{"@type":"ListItem","position":2,"name":"The life of a Full Text Search query"}]},{"@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\/574480df99d76a8837bba934d7324711","name":"Abhinav Dangeti, Engenharia de software, Couchbase inc.","image":{"@type":"ImageObject","inLanguage":"pt-BR","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/image\/9fa9293925a63fb1fab65e43636c534b","url":"https:\/\/secure.gravatar.com\/avatar\/6119ccf4cd5cba9ca4abd6f338d737445c23575e60f2b2729806c28185d0ee9b?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/6119ccf4cd5cba9ca4abd6f338d737445c23575e60f2b2729806c28185d0ee9b?s=96&d=mm&r=g","caption":"Abhinav Dangeti, Software Engineering, Couchbase inc."},"description":"Trabalho na pesquisa distribu\u00edda de texto completo do Couchbase","url":"https:\/\/www.couchbase.com\/blog\/pt\/author\/abhinav\/"}]}},"authors":[{"term_id":8925,"user_id":37266,"is_guest":0,"slug":"abhinav","display_name":"Abhinav Dangeti, Software Engineer","avatar_url":"https:\/\/secure.gravatar.com\/avatar\/6119ccf4cd5cba9ca4abd6f338d737445c23575e60f2b2729806c28185d0ee9b?s=96&d=mm&r=g","author_category":"","last_name":"Dangeti, Software Engineer","first_name":"Abhinav","job_title":"","user_url":"","description":"Trabalho na pesquisa distribu\u00edda de texto completo do Couchbase"}],"_links":{"self":[{"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/posts\/11156","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\/37266"}],"replies":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/comments?post=11156"}],"version-history":[{"count":0,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/posts\/11156\/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=11156"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/categories?post=11156"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/tags?post=11156"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/ppma_author?post=11156"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}