{"id":7344,"date":"2019-08-06T07:02:34","date_gmt":"2019-08-06T14:02:34","guid":{"rendered":"http:\/\/www.couchbase.com\/blog\/?p=7344"},"modified":"2024-02-07T11:56:40","modified_gmt":"2024-02-07T19:56:40","slug":"building-autocomplete-or-typeahead-functionality-using-full-text-search","status":"publish","type":"post","link":"https:\/\/www.couchbase.com\/blog\/pt\/building-autocomplete-or-typeahead-functionality-using-full-text-search\/","title":{"rendered":"Criar preenchimento autom\u00e1tico ou typeAhead usando a Pesquisa de texto completo"},"content":{"rendered":"<h3><b>O que \u00e9 Autocomplete vs. Type Ahead?<\/b><\/h3>\n<p><span style=\"font-weight: 400\">Autocompletar como o<\/span><a href=\"https:\/\/en.wikipedia.org\/wiki\/Autocomplete\"> <span style=\"font-weight: 400\">wikipedia<\/span><\/a><span style=\"font-weight: 400\"> diz<\/span><\/p>\n<p><i><span style=\"font-weight: 400\">\"O autocomplete, ou preenchimento de palavras, \u00e9 um recurso no qual um aplicativo prev\u00ea o restante de uma palavra que o usu\u00e1rio est\u00e1 digitando\"<\/span><\/i><\/p>\n<p><span style=\"font-weight: 400\">Tamb\u00e9m \u00e9 conhecido como Sugest\u00f5es, Type Ahead ou Search as you Type. Isso ajuda a navegar ou a orientar um usu\u00e1rio, apresentando a ele conclus\u00f5es e alternativas prov\u00e1veis para o texto enquanto ele o digita. E reduz a quantidade de caracteres que o usu\u00e1rio precisa digitar para obter os resultados finais da pesquisa, melhorando assim a experi\u00eancia de pesquisa dos usu\u00e1rios.<\/span><\/p>\n<p><span style=\"font-weight: 400\">Vamos explorar algumas abordagens funcionais sobre como implementar o recurso de autocompletar usando o Couchbase FTS.<\/span><\/p>\n<h4><b>\u00a0<\/b><\/h4>\n<h4><b>Usando a abordagem Edge NGram.<\/b><\/h4>\n<p><span style=\"font-weight: 400\">Essa abordagem envolve o uso de diferentes \u00edndices e analisadores de tempo de consulta.<\/span><\/p>\n<p><b>Etapa 1<\/b><span style=\"font-weight: 400\"> - \u00e9 ter a defini\u00e7\u00e3o correta do \u00edndice FTS para os campos que precisam ser preenchidos automaticamente. Portanto, durante a indexa\u00e7\u00e3o, os campos de preenchimento autom\u00e1tico pretendidos devem ser analisados com um analisador personalizado que use o <a href=\"https:\/\/docs.couchbase.com\/server\/6.0\/fts\/fts-using-analyzers.html#token-filters\">filtro de token de ngrama de borda<\/a>. It can also be chained with `to_lower` token filter if concerned about the case sensitivity.\u00a0 <\/span><a href=\"https:\/\/docs.couchbase.com\/server\/6.0\/fts\/fts-creating-indexes.html#inserting-a-child-field\"><b>loja <\/b><\/a><span style=\"font-weight: 400\">- deve ser ativada para o campo autocompletar na defini\u00e7\u00e3o do \u00edndice para preservar o conte\u00fado do campo intacto no \u00edndice FTS, de modo que esse valor de campo armazenado seja buscado explicitamente durante a fase de consulta para executar o preenchimento autom\u00e1tico real ou as sugest\u00f5es para o usu\u00e1rio.<\/span><\/p>\n<h5><b>Como funciona um filtro de token de ngrama de borda?<\/b><\/h5>\n<p><span style=\"font-weight: 400\">Um tokenizador de ngrama de borda tokenizar\u00e1 um determinado valor de texto de autocompletar em sub-tokens de comprimento que variam de um determinado par\u00e2metro de comprimento m\u00ednimo e m\u00e1ximo. Por exemplo, um tokenizador de ngrama de borda com comprimento m\u00ednimo de 2 e comprimento m\u00e1ximo de 6 tokenizaria o texto \"<\/span><b>parque jur\u00e1ssico<\/b><span style=\"font-weight: 400\">\" como abaixo.<\/span><\/p>\n<p><b>ju, jur, jura, juras, jurass, pa, par, park.\u00a0<\/b><\/p>\n<p><span style=\"font-weight: 400\">A ideia aqui \u00e9 que esses textos tokenizados do campo indexado serviriam como futuras entradas de texto parcial em potencial do usu\u00e1rio na interface do usu\u00e1rio.<\/span><\/p>\n<p><span style=\"font-weight: 400\">\u00a0<\/span><\/p>\n<p>&nbsp;<\/p>\n<p><b>Etapa 2<\/b><span style=\"font-weight: 400\"> - Posteriormente, quando o usu\u00e1rio final realmente come\u00e7ar a digitar na caixa de texto da interface do usu\u00e1rio, o aplicativo cliente poder\u00e1 acionar consultas de pesquisa em segundo plano com o texto parcial dispon\u00edvel na caixa de texto. Os clientes devem usar especificamente a fun\u00e7\u00e3o <a href=\"https:\/\/docs.couchbase.com\/server\/6.0\/fts\/fts-query-types.html#match-query\">consulta de correspond\u00eancia<\/a> pois ele tem as disposi\u00e7\u00f5es para fornecer explicitamente,<\/span><\/p>\n<ul>\n<li><span style=\"font-weight: 400\">analisador a ser usado para o texto de pesquisa.<\/span><\/li>\n<\/ul>\n<p style=\"text-align: right\">\u00a0 \u00a0 Deve-se usar um analisador simples para a consulta de correspond\u00eancia, pois isso deve evitar qualquer divis\u00e3o desnecess\u00e1ria de texto durante a fase de pesquisa.<\/p>\n<ul>\n<li><span style=\"font-weight: 400\">imprecis\u00e3o que precisa ser aplicada.<\/span><\/li>\n<\/ul>\n<p style=\"text-align: right\">\u00a0 Tamb\u00e9m \u00e9 poss\u00edvel mencionar o fator de imprecis\u00e3o se o cliente estiver interessado em obter sugest\u00f5es de preenchimento autom\u00e1tico com imprecis\u00e3o aplicada.<\/p>\n<p><span style=\"font-weight: 400\">essas op\u00e7\u00f5es ajudam a controlar o recurso de conclus\u00e3o autom\u00e1tica.<\/span><\/p>\n<p><span style=\"font-weight: 400\">Junto com a consulta de correspond\u00eancia, o cliente deve solicitar o conte\u00fado real do campo preenchido automaticamente usando <\/span><span style=\"font-weight: 400\">`Fields`\u00a0 option in the search request and this value will be used as the auto completed text or type ahead for the user.<\/span><\/p>\n<p>&nbsp;<\/p>\n<p><span style=\"font-weight: 400\"><strong>Por exemplo,<\/strong> uma consulta de correspond\u00eancia para os textos parciais como \"jur\" ou \"pa\" corresponder\u00e1 a todos os t\u00edtulos abaixo.<\/span><\/p>\n<p><span style=\"font-weight: 400\">Parque Jur\u00e1ssico\u00a0<\/span><\/p>\n<p><span style=\"font-weight: 400\">Jurassic Park III<\/span><\/p>\n<p><span style=\"font-weight: 400\">O Mundo Perdido: Jurassic Park<\/span><\/p>\n<p>&nbsp;<\/p>\n<p><b>Ordem\/classifica\u00e7\u00e3o dos resultados<\/b> <b>-\u00a0 <\/b><span style=\"font-weight: 400\">O padr\u00e3o <a href=\"https:\/\/en.wikipedia.org\/wiki\/Tf%E2%80%93idf\">tf-idf<\/a> s\u00e3o aplic\u00e1veis aqui para os n-gramas que est\u00e3o sendo indexados.\u00a0 <\/span><span style=\"font-weight: 400\">A ordem espec\u00edfica das sugest\u00f5es \u00e9 poss\u00edvel aplicando qualquer classifica\u00e7\u00e3o personalizada espec\u00edfica do cliente\/aplicativo nos valores de campo recuperados no lado do cliente.<\/span><\/p>\n<h3><\/h3>\n<p><span style=\"font-weight: 400\">Voc\u00ea pode conferir o exemplo de preenchimento autom\u00e1tico <a href=\"https:\/\/github.com\/sreekanth-cb\/autoComplete\"><strong>aplicativo bootstrap<\/strong> <\/a><\/span><b>aqui -\u00a0<\/b><\/p>\n<div style=\"width: 900px;\" class=\"wp-video\"><video class=\"wp-video-shortcode\" id=\"video-7344-1\" width=\"900\" height=\"571\" loop autoplay preload=\"metadata\" controls=\"controls\"><source type=\"video\/mp4\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2019\/08\/CleanShot-2019-08-06-at-16.24.30.mp4?_=1\" \/><a href=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2019\/08\/CleanShot-2019-08-06-at-16.24.30.mp4\">https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2019\/08\/CleanShot-2019-08-06-at-16.24.30.mp4<\/a><\/video><\/div>\n<h4><b>Abordagem baseada em prefixo<\/b><\/h4>\n<p><span style=\"font-weight: 400\">Essa abordagem envolve o uso do mesmo \u00edndice e analisadores de tempo de consulta.<\/span><\/p>\n<p><b>Etapa 1<\/b><b> - <\/b><span style=\"font-weight: 400\">Durante a indexa\u00e7\u00e3o, os campos de preenchimento autom\u00e1tico pretendidos devem ser analisados com um <a href=\"https:\/\/docs.couchbase.com\/server\/6.0\/fts\/fts-using-analyzers.html#pre-constructed-analyzers\">analisador de palavras-chave<\/a>. Com o analisador de palavras-chave, o valor desse campo ser\u00e1 armazenado como uma palavra-chave, de modo que todo o valor ser\u00e1 tratado como um \u00fanico token com todos os termos e espa\u00e7os retidos.\u00a0<\/span><\/p>\n<p><b>Passo2-<\/b> <span style=\"font-weight: 400\">Posteriormente, durante o tempo de consulta, essa abordagem envolve tentar <a href=\"https:\/\/docs.couchbase.com\/server\/6.0\/fts\/fts-query-types.html#prefix-query\">consultas de prefixo<\/a> contra o campo desejado nos documentos.  Semelhante \u00e0 primeira abordagem, o cliente precisa explicitamente <\/span><span style=\"font-weight: 400\">solicita\u00e7\u00e3o do conte\u00fado real do campo preenchido automaticamente usando <\/span><span style=\"font-weight: 400\">`Fields`\u00a0 option in the search request and this value will be used as the auto completed text for the user.<\/span><\/p>\n<p><span style=\"font-weight: 400\">Essa abordagem tem a restri\u00e7\u00e3o de que a correspond\u00eancia \u00e9 estritamente limitada ao in\u00edcio\/prefixo do valor do campo.<\/span><\/p>\n<p><span style=\"font-weight: 400\">\u00a0Por exemplo, no caso de uso mencionado acima (com texto parcial como \"Jur\"), com a abordagem baseada em prefixo <\/span><\/p>\n<p><span style=\"font-weight: 400\">\"Jurassic Park\"<\/span><\/p>\n<p><span style=\"font-weight: 400\"> \"Jurassic Park III\" <\/span><\/p>\n<p><span style=\"font-weight: 400\">aparecer\u00e1 nos resultados, mas <\/span><span style=\"font-weight: 400\">\"The Lost World: Jurassic Park\" n\u00e3o aparecer\u00e1, pois seu prefixo (\"The Lost World:\") n\u00e3o come\u00e7a com \"Jur\".<\/span><\/p>","protected":false},"excerpt":{"rendered":"<p>What is Autocomplete vs Type Ahead? Autocomplete as the wikipedia says \u201cAutocomplete, or word completion, is a feature in which an application predicts the rest of a word a user is typing\u201d It is also known as\u00a0 Suggestions or Type [&hellip;]<\/p>\n","protected":false},"author":26446,"featured_media":10571,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"inline_featured_image":false,"footnotes":""},"categories":[1814,1815,2165,2389],"tags":[],"ppma_author":[9075],"class_list":["post-7344","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-application-design","category-best-practices-and-tutorials","category-full-text-search","category-solutions"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v27.3 (Yoast SEO v27.3) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>typeAhead vs autocomplete: Implement with Full Text Search<\/title>\n<meta name=\"description\" content=\"Type Ahead vs Autocomplete \u2013 What are they and how are they different? Explore functional approaches on how to implement using Full Text Search.\" \/>\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\/building-autocomplete-or-typeahead-functionality-using-full-text-search\/\" \/>\n<meta property=\"og:locale\" content=\"pt_BR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Build autocomplete or typeAhead using Full Text Search\" \/>\n<meta property=\"og:description\" content=\"Type Ahead vs Autocomplete \u2013 What are they and how are they different? Explore functional approaches on how to implement using Full Text Search.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.couchbase.com\/blog\/pt\/building-autocomplete-or-typeahead-functionality-using-full-text-search\/\" \/>\n<meta property=\"og:site_name\" content=\"The Couchbase Blog\" \/>\n<meta property=\"article:published_time\" content=\"2019-08-06T14:02:34+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-02-07T19:56:40+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2019\/08\/Glacier-Gardens-replace-1170x731-1.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1200\" \/>\n\t<meta property=\"og:image:height\" content=\"750\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Sreekanth Sivasankaran\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Sreekanth Sivasankaran\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"4 minutos\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/building-autocomplete-or-typeahead-functionality-using-full-text-search\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/building-autocomplete-or-typeahead-functionality-using-full-text-search\\\/\"},\"author\":{\"name\":\"Sreekanth Sivasankaran\",\"@id\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/#\\\/schema\\\/person\\\/7bbda3cf57beae8bd9cba686c0c6fe7a\"},\"headline\":\"Build autocomplete or typeAhead using Full Text Search\",\"datePublished\":\"2019-08-06T14:02:34+00:00\",\"dateModified\":\"2024-02-07T19:56:40+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/building-autocomplete-or-typeahead-functionality-using-full-text-search\\\/\"},\"wordCount\":786,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/building-autocomplete-or-typeahead-functionality-using-full-text-search\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/wp-content\\\/uploads\\\/sites\\\/1\\\/2019\\\/08\\\/Glacier-Gardens-replace-1170x731-1.jpg\",\"articleSection\":[\"Application Design\",\"Best Practices and Tutorials\",\"Full-Text Search\",\"Solutions\"],\"inLanguage\":\"pt-BR\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/building-autocomplete-or-typeahead-functionality-using-full-text-search\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/building-autocomplete-or-typeahead-functionality-using-full-text-search\\\/\",\"url\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/building-autocomplete-or-typeahead-functionality-using-full-text-search\\\/\",\"name\":\"typeAhead vs autocomplete: Implement with Full Text Search\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/building-autocomplete-or-typeahead-functionality-using-full-text-search\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/building-autocomplete-or-typeahead-functionality-using-full-text-search\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/wp-content\\\/uploads\\\/sites\\\/1\\\/2019\\\/08\\\/Glacier-Gardens-replace-1170x731-1.jpg\",\"datePublished\":\"2019-08-06T14:02:34+00:00\",\"dateModified\":\"2024-02-07T19:56:40+00:00\",\"description\":\"Type Ahead vs Autocomplete \u2013 What are they and how are they different? Explore functional approaches on how to implement using Full Text Search.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/building-autocomplete-or-typeahead-functionality-using-full-text-search\\\/#breadcrumb\"},\"inLanguage\":\"pt-BR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/building-autocomplete-or-typeahead-functionality-using-full-text-search\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-BR\",\"@id\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/building-autocomplete-or-typeahead-functionality-using-full-text-search\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/wp-content\\\/uploads\\\/sites\\\/1\\\/2019\\\/08\\\/Glacier-Gardens-replace-1170x731-1.jpg\",\"contentUrl\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/wp-content\\\/uploads\\\/sites\\\/1\\\/2019\\\/08\\\/Glacier-Gardens-replace-1170x731-1.jpg\",\"width\":1200,\"height\":750},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/building-autocomplete-or-typeahead-functionality-using-full-text-search\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Build autocomplete or typeAhead using Full Text Search\"}]},{\"@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\\\/7bbda3cf57beae8bd9cba686c0c6fe7a\",\"name\":\"Sreekanth Sivasankaran\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-BR\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/01af11c4c81e84e518ab465b39b7a5b3c874de79270af74043cc3d4edb92ff4e?s=96&d=mm&r=ga60af16118050d1ea3a927388dc4dfb7\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/01af11c4c81e84e518ab465b39b7a5b3c874de79270af74043cc3d4edb92ff4e?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/01af11c4c81e84e518ab465b39b7a5b3c874de79270af74043cc3d4edb92ff4e?s=96&d=mm&r=g\",\"caption\":\"Sreekanth Sivasankaran\"},\"description\":\"Sreekanth Sivasankaran is a Principal Engineer\\\/Senior Engineering manager at Couchbase R&amp;D. He leads the design and development of distributed and highly performant Search functionality. And he has over 17 years of product development experience in various domains like telecom, handsets, enterprise software, big data technologies, and distributed systems.\",\"url\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/pt\\\/author\\\/sreekanth-sivasankaran\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"typeAhead vs autocomplete: Implement with Full Text Search","description":"Type Ahead vs. Autocomplete - O que s\u00e3o e quais s\u00e3o as diferen\u00e7as? Explore abordagens funcionais sobre como implementar o uso da pesquisa de texto completo.","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\/building-autocomplete-or-typeahead-functionality-using-full-text-search\/","og_locale":"pt_BR","og_type":"article","og_title":"Build autocomplete or typeAhead using Full Text Search","og_description":"Type Ahead vs Autocomplete \u2013 What are they and how are they different? Explore functional approaches on how to implement using Full Text Search.","og_url":"https:\/\/www.couchbase.com\/blog\/pt\/building-autocomplete-or-typeahead-functionality-using-full-text-search\/","og_site_name":"The Couchbase Blog","article_published_time":"2019-08-06T14:02:34+00:00","article_modified_time":"2024-02-07T19:56:40+00:00","og_image":[{"width":1200,"height":750,"url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2019\/08\/Glacier-Gardens-replace-1170x731-1.jpg","type":"image\/jpeg"}],"author":"Sreekanth Sivasankaran","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Sreekanth Sivasankaran","Est. reading time":"4 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.couchbase.com\/blog\/building-autocomplete-or-typeahead-functionality-using-full-text-search\/#article","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/building-autocomplete-or-typeahead-functionality-using-full-text-search\/"},"author":{"name":"Sreekanth Sivasankaran","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/7bbda3cf57beae8bd9cba686c0c6fe7a"},"headline":"Build autocomplete or typeAhead using Full Text Search","datePublished":"2019-08-06T14:02:34+00:00","dateModified":"2024-02-07T19:56:40+00:00","mainEntityOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/building-autocomplete-or-typeahead-functionality-using-full-text-search\/"},"wordCount":786,"commentCount":0,"publisher":{"@id":"https:\/\/www.couchbase.com\/blog\/#organization"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/building-autocomplete-or-typeahead-functionality-using-full-text-search\/#primaryimage"},"thumbnailUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/08\/Glacier-Gardens-replace-1170x731-1.jpg","articleSection":["Application Design","Best Practices and Tutorials","Full-Text Search","Solutions"],"inLanguage":"pt-BR","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.couchbase.com\/blog\/building-autocomplete-or-typeahead-functionality-using-full-text-search\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.couchbase.com\/blog\/building-autocomplete-or-typeahead-functionality-using-full-text-search\/","url":"https:\/\/www.couchbase.com\/blog\/building-autocomplete-or-typeahead-functionality-using-full-text-search\/","name":"typeAhead vs autocomplete: Implement with Full Text Search","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/building-autocomplete-or-typeahead-functionality-using-full-text-search\/#primaryimage"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/building-autocomplete-or-typeahead-functionality-using-full-text-search\/#primaryimage"},"thumbnailUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/08\/Glacier-Gardens-replace-1170x731-1.jpg","datePublished":"2019-08-06T14:02:34+00:00","dateModified":"2024-02-07T19:56:40+00:00","description":"Type Ahead vs. Autocomplete - O que s\u00e3o e quais s\u00e3o as diferen\u00e7as? Explore abordagens funcionais sobre como implementar o uso da pesquisa de texto completo.","breadcrumb":{"@id":"https:\/\/www.couchbase.com\/blog\/building-autocomplete-or-typeahead-functionality-using-full-text-search\/#breadcrumb"},"inLanguage":"pt-BR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.couchbase.com\/blog\/building-autocomplete-or-typeahead-functionality-using-full-text-search\/"]}]},{"@type":"ImageObject","inLanguage":"pt-BR","@id":"https:\/\/www.couchbase.com\/blog\/building-autocomplete-or-typeahead-functionality-using-full-text-search\/#primaryimage","url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/08\/Glacier-Gardens-replace-1170x731-1.jpg","contentUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/08\/Glacier-Gardens-replace-1170x731-1.jpg","width":1200,"height":750},{"@type":"BreadcrumbList","@id":"https:\/\/www.couchbase.com\/blog\/building-autocomplete-or-typeahead-functionality-using-full-text-search\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.couchbase.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Build autocomplete or typeAhead using Full Text Search"}]},{"@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\/7bbda3cf57beae8bd9cba686c0c6fe7a","name":"Sreekanth Sivasankaran","image":{"@type":"ImageObject","inLanguage":"pt-BR","@id":"https:\/\/secure.gravatar.com\/avatar\/01af11c4c81e84e518ab465b39b7a5b3c874de79270af74043cc3d4edb92ff4e?s=96&d=mm&r=ga60af16118050d1ea3a927388dc4dfb7","url":"https:\/\/secure.gravatar.com\/avatar\/01af11c4c81e84e518ab465b39b7a5b3c874de79270af74043cc3d4edb92ff4e?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/01af11c4c81e84e518ab465b39b7a5b3c874de79270af74043cc3d4edb92ff4e?s=96&d=mm&r=g","caption":"Sreekanth Sivasankaran"},"description":"Sreekanth Sivasankaran \u00e9 engenheiro principal\/gerente s\u00eanior de engenharia da Couchbase R&amp;D. Ele lidera o projeto e o desenvolvimento da funcionalidade de pesquisa distribu\u00edda e de alto desempenho. Ele tem mais de 17 anos de experi\u00eancia em desenvolvimento de produtos em v\u00e1rios dom\u00ednios, como telecomunica\u00e7\u00f5es, telefones celulares, software corporativo, tecnologias de big data e sistemas distribu\u00eddos.","url":"https:\/\/www.couchbase.com\/blog\/pt\/author\/sreekanth-sivasankaran\/"}]}},"acf":[],"authors":[{"term_id":9075,"user_id":26446,"is_guest":0,"slug":"sreekanth-sivasankaran","display_name":"Sreekanth Sivasankaran","avatar_url":"https:\/\/secure.gravatar.com\/avatar\/01af11c4c81e84e518ab465b39b7a5b3c874de79270af74043cc3d4edb92ff4e?s=96&d=mm&r=g","0":null,"1":"","2":"","3":"","4":"","5":"","6":"","7":"","8":""}],"_links":{"self":[{"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/posts\/7344","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\/26446"}],"replies":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/comments?post=7344"}],"version-history":[{"count":0,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/posts\/7344\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/media\/10571"}],"wp:attachment":[{"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/media?parent=7344"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/categories?post=7344"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/tags?post=7344"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/ppma_author?post=7344"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}