{"id":16819,"date":"2025-01-28T13:47:56","date_gmt":"2025-01-28T21:47:56","guid":{"rendered":"https:\/\/www.couchbase.com\/blog\/?p=16819"},"modified":"2025-12-02T05:44:53","modified_gmt":"2025-12-02T13:44:53","slug":"plataforma-unica-multiuso-couchbase-pesquisa-vetorial-geoespacial-sql-mais","status":"publish","type":"post","link":"https:\/\/www.couchbase.com\/blog\/plataforma-unica-multiuso-couchbase-pesquisa-vetorial-geoespacial-sql-mais\/","title":{"rendered":"Plataforma \u00fanica, Couchbase multiuso: Pesquisa vetorial, geoespacial, SQL++ e muito mais"},"content":{"rendered":"<p>H\u00e1 casos de uso que s\u00e3o melhor atendidos por v\u00e1rios tipos de acesso a dados, incluindo SQL, pesquisa vetorial, consultas geoespaciais e acesso de valor-chave. Uma abordagem \u00e9 combinar\/encadear v\u00e1rios sistemas de dados para cada m\u00e9todo de acesso. No entanto, a abordagem Couchbase torna poss\u00edvel combinar esses diferentes tipos de consultas para resolver problemas do mundo real.<\/p>\n<p>Este artigo aborda aspectos do aplicativo de demonstra\u00e7\u00e3o &#8220;O que \u00e9 essa coisa?&#8221; &#8220;What is This Thing?&#8221; (tamb\u00e9m conhecido como &#8220;WITT&#8221;). Para mais contexto e hist\u00f3rico, confira:<\/p>\n<ul>\n<li style=\"list-style-type: none;\">\n<ul>\n<li aria-level=\"1\"><a href=\"https:\/\/github.com\/mgroves\/WhatIsThisThing\">Reposit\u00f3rio GitHub para \u201cO que \u00e9 essa coisa?\u201d<\/a><\/li>\n<li aria-level=\"1\"><a href=\"https:\/\/www.youtube.com\/watch?v=sYy0ob2GqUo\">Breve v\u00eddeo de vis\u00e3o geral de &#8220;O que \u00e9 essa coisa?&#8221;<\/a><\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p><iframe loading=\"lazy\" title=\"Couchbase Capella vector and hybrid search demo: &quot;What is this thing?&quot;\" width=\"900\" height=\"506\" src=\"https:\/\/www.youtube.com\/embed\/sYy0ob2GqUo?feature=oembed&#038;enablejsapi=1&#038;origin=https:\/\/www.couchbase.com\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen><\/iframe><\/p>\n<p><i>Este post do blog faz parte do C# Advent de 2024. No entanto, voc\u00ea n\u00e3o precisa entender C# para ler este post: os conceitos s\u00e3o aplic\u00e1veis \u200b\u200ba qualquer um dos <\/i><a href=\"https:\/\/docs.couchbase.com\/home\/sdk.html\"><i>muitos SDKs dispon\u00edveis para o Couchbase.<\/i><\/a><\/p>\n<h2>Pesquisa de vetores: o b\u00e1sico<\/h2>\n<p>A busca por vetores \u00e9 \u00fatil para aplicativos que precisam encontrar itens semelhantes. Por exemplo, embeddings criados por modelos de IA podem ser indexados e pesquisados. Cada item no WITT \u00e9 modelado assim:<\/p>\n<pre class=\"nums:false lang:default decode:true \">{\r\n\u00a0 \"name\": \"Reticulated Splines\",\r\n\u00a0 \"desc\": \"Specialized grooves used in advanced machinery for precise alignment.\",\r\n\u00a0 \"price\": 19.99,\r\n\u00a0 \"image\": \"data:image\/png;base64,...\",\r\n\u00a0 \"rating\": 5,\r\n\u00a0 \"imageVector\": [ -4.5390625, 0.32543945, ... ]\r\n}<\/pre>\n<p><i>Nota: A imagem do item \u00e9 armazenada como uma string codificada em base64. Em um projeto de produ\u00e7\u00e3o, eu recomendaria usar armazenamento de arquivo, S3, etc., em vez de armazen\u00e1-lo no banco de dados.<\/i><\/p>\n<p><em>imageVector<\/em> \u00e9 recuperado carregando a imagem em um modelo de imagem de IA, como o <a href=\"https:\/\/azure.microsoft.com\/en-us\/products\/ai-services\/ai-vision\/\">Azure Computer Vision<\/a>.<\/p>\n<p><a href=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/12\/image1-3.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-16721\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/12\/image1-3.png\" alt=\"\" width=\"916\" height=\"663\" srcset=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/12\/image1-3.png 916w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/12\/image1-3-300x217.png 300w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/12\/image1-3-768x556.png 768w\" sizes=\"auto, (max-width: 916px) 100vw, 916px\" \/><\/a><\/p>\n<p><i>Observa\u00e7\u00e3o: um dos recursos dos <\/i><a href=\"https:\/\/www.couchbase.com\/products\/ai-services\/\"><i>Capella AI services<\/i><\/a><i>\u00a0 rec\u00e9m-anunciados \u00e9 a hospedagem de modelos, o que reduzir\u00e1 a lat\u00eancia dessa etapa e tamb\u00e9m aumentar\u00e1 a privacidade e a flexibilidade, al\u00e9m de potencialmente reduzir custos.<\/i><\/p>\n<h2>Incorpora\u00e7\u00e3o de imagens e pesquisa de vizinho mais pr\u00f3ximo<\/h2>\n<p>Com um \u00edndice de pesquisa vetorial no campo <em>imageVector<\/em>, o Couchbase pode executar pesquisas de vizinho mais pr\u00f3ximo. Nesse caso, essa pesquisa encontraria itens que s\u00e3o visualmente semelhantes (de acordo com o modelo de IA). Ent\u00e3o, se um usu\u00e1rio tem uma imagem e quer encontrar um item no Couchbase que seja mais semelhante a essa imagem, um \u00edndice de pesquisa vetorial pode fazer isso:<\/p>\n<p><a href=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/12\/image2-2.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-16722\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/12\/image2-2.png\" alt=\"\" width=\"747\" height=\"703\" srcset=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/12\/image2-2.png 747w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/12\/image2-2-300x282.png 300w\" sizes=\"auto, (max-width: 747px) 100vw, 747px\" \/><\/a><\/p>\n<p>Aqui est\u00e1 o c\u00f3digo no WITT que, para uma determinada imagem, <a href=\"https:\/\/github.com\/mgroves\/WhatIsThisThing\/blob\/main\/WhatIsThisThing.Core\/Services\/AzureEmbeddingService.cs\">requests a vector embedding<\/a> do Azure Computer Vision:<\/p>\n<pre class=\"nums:false lang:default decode:true \">\/\/ Free tier: 20 Calls per minute, 5K Calls per month\r\n\/\/ Standard tier: 10 Calls per second, starting $1.00 USD\/1000 calls (Estimated)\r\npublic async Task&lt;float[]&gt; GetImageEmbedding(string base64Image)\r\n{\r\n\u00a0 \u00a0 var endpoint = _settings.Value.Endpoint;\r\n\u00a0 \u00a0 var subscriptionKey = _settings.Value.SubscriptionKey;\r\n\r\n\u00a0 \u00a0 using (HttpClient client = new HttpClient())\r\n\u00a0 \u00a0 {\r\n\u00a0 \u00a0 \u00a0 \u00a0 \/\/ Set the subscription key and endpoint\r\n\u00a0 \u00a0 \u00a0 \u00a0 client.DefaultRequestHeaders.Add(\"Ocp-Apim-Subscription-Key\", subscriptionKey);\r\n\r\n\u00a0 \u00a0 \u00a0 \u00a0 \/\/ Endpoint URL\r\n\u00a0 \u00a0 \u00a0 \u00a0 string url = $\"{endpoint}\/retrieval:vectorizeImage?overload=stream&amp;api-version=2023-04-01-preview\";\r\n\r\n\u00a0 \u00a0 \u00a0 \u00a0 byte[] imageBytes = Base64PngToByteArray(base64Image);\r\n\r\n\u00a0 \u00a0 \u00a0 \u00a0 using (ByteArrayContent content = new ByteArrayContent(imageBytes))\r\n\u00a0 \u00a0 \u00a0 \u00a0 {\r\n\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 content.Headers.ContentType = new MediaTypeHeaderValue(\"application\/octet-stream\");\r\n\r\n\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 HttpResponseMessage response = await client.PostAsync(url, content);\r\n\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 string jsonResponse = await response.Content.ReadAsStringAsync();\r\n\r\n\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 if (response.IsSuccessStatusCode)\r\n\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 {\r\n\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \/\/ Parse the JSON response to extract the vector embeddings\r\n\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 JObject json = JObject.Parse(jsonResponse);\r\n\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 JToken vectorEmbeddings = json[\"vector\"];\r\n\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 return vectorEmbeddings.ToObject&lt;float[]&gt;();\r\n\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 }\r\n\r\n\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 throw new Exception(\"Unable to retrieve vector embeddings for image.\");\r\n\u00a0 \u00a0 \u00a0 \u00a0 }\r\n\u00a0 \u00a0 }\r\n}<\/pre>\n<p>Provavelmente h\u00e1 frameworks que podem lidar com essa chamada tamb\u00e9m, mas para essa demonstra\u00e7\u00e3o simples, que requer apenas uma \u00fanica chamada REST, achei isso suficiente. Se voc\u00ea quiser usar algo diferente do Azure com essa demonstra\u00e7\u00e3o, precisa implementar <em>IEmbeddingService<\/em>.<\/p>\n<h2>Consultas multiuso com SQL++<\/h2>\n<p>Muitos bancos de dados com pesquisa vetorial podem executar uma opera\u00e7\u00e3o muito semelhante. O que o Couchbase permite que voc\u00ea fa\u00e7a \u00e9 executar v\u00e1rios tipos de opera\u00e7\u00f5es de dados com uma \u00fanica plataforma, um \u00fanico conjunto de dados. Por exemplo, dada uma localiza\u00e7\u00e3o geoespacial (que pode ser recuperada por meio de um navegador da web), voc\u00ea pode n\u00e3o apenas consultar para encontrar um item semelhante por imagem, mas tamb\u00e9m combinar isso com uma pesquisa geoespacial, tudo por meio de uma \u00fanica consulta SQL++:<\/p>\n<pre class=\"nums:false lang:default decode:true\">WITH closestStores AS (\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \r\n\u00a0 \u00a0 \/* CTE to get closest stores based on user's location *\/\r\n\u00a0 \u00a0 SELECT x.name, META(x).id AS id\r\n\u00a0 \u00a0 FROM whatisthis._default.Stores x\r\n\u00a0 \u00a0 WHERE SEARCH(x, {\r\n\u00a0 \u00a0 \u00a0 \"fields\": [\"*\"],\r\n\u00a0 \u00a0 \u00a0 \"query\" : {\r\n\u00a0 \u00a0 \u00a0 \u00a0 \"location\" : {\r\n\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \"lat\" : 39.8787,\r\n\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \"lon\" : -83.0805\r\n\u00a0 \u00a0 \u00a0 \u00a0 },\r\n\u00a0 \u00a0 \u00a0 \u00a0 \"distance\" : \"15mi\",\r\n\u00a0 \u00a0 \u00a0 \u00a0 \"field\" : \"geo\"\r\n\u00a0 \u00a0 \u00a0 } . . .\r\n\u00a0 })\r\n\r\n\u00a0 LIMIT 3\r\n)\r\n\/* SELECT items with nearby stock *\/\r\nSELECT allItems.name, allItems.`desc`, allItems.image, allItems.price, allItems.rating, SEARCH_SCORE(allItems) AS score,\r\n\r\n\u00a0 \u00a0 \/* subquery to get stock from nearby locations *\/\r\n\u00a0 \u00a0 (SELECT . . . ) AS stock\r\n\r\nFROM whatisthis._default.Items AS allItems\r\n\r\n\/* vector search using image embedding *\/\r\nWHERE SEARCH(allItems,\r\n\u00a0 {\r\n\u00a0 \u00a0 \"fields\": [\"*\"],\r\n\u00a0 \u00a0 \"query\": { \"match_none\": {} },\r\n\u00a0 \u00a0 \"knn\": [\r\n\u00a0 \u00a0 \u00a0 {\r\n\u00a0 \u00a0 \u00a0 \u00a0 \"k\": 4,\r\n\u00a0 \u00a0 \u00a0 \u00a0 \"field\": \"imageVector\",\r\n\u00a0 \u00a0 \u00a0 \u00a0 \"vector\": [ -0.9135742,1.1552734, ... ]\r\n\u00a0 \u00a0 \u00a0 }\r\n\u00a0 \u00a0 ]\r\n\u00a0 }\r\n)\r\nORDER BY score DESC<\/pre>\n<p>Nota: esta consulta foi editada para fins de brevidade. Confira <a href=\"https:\/\/datalayer.cs\/\">DataLayer.cs<\/a> para uma vis\u00e3o mais completa das consultas.<\/p>\n<p>O resultado desta consulta \u00e9 uma &#8220;correspond\u00eancia mais prov\u00e1vel&#8221; para uma determinada imagem. Por exemplo, aqui est\u00e1 o resultado principal ao carregar uma imagem de uma caneta:<\/p>\n<p><a href=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/12\/image3.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-16723\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/12\/image3.jpg\" alt=\"\" width=\"469\" height=\"743\" srcset=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/12\/image3.jpg 469w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/12\/image3-189x300.jpg 189w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/12\/image3-300x475.jpg 300w\" sizes=\"auto, (max-width: 469px) 100vw, 469px\" \/><\/a><\/p>\n<p>A qualidade das correspond\u00eancias depender\u00e1 de:<\/p>\n<ul>\n<li style=\"list-style-type: none;\">\n<ul>\n<li aria-level=\"1\">A qualidade do modelo de IA<\/li>\n<li aria-level=\"1\">A qualidade\/quantidade das imagens para um determinado item<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p>Em meus testes limitados, descobri que o modelo Azure Computer Vision \u00e9 muito bom para combinar imagens relevantes.<\/p>\n<p>O resultado tamb\u00e9m conter\u00e1 lojas pr\u00f3ximas, onde o item est\u00e1 dispon\u00edvel para compra.<\/p>\n<h2>Al\u00e9m da Pesquisa Vetorial e Geoespacial<\/h2>\n<p>Esta consulta mostrou a capacidade do Couchbase de combinar pesquisa vetorial e pesquisa geoespacial em uma \u00fanica opera\u00e7\u00e3o. Ela tamb\u00e9m continha um CTE, JOINs e uma subconsulta.<\/p>\n<p>Em uma \u00fanica consulta, voc\u00ea tamb\u00e9m pode executar:<\/p>\n<ul>\n<li style=\"list-style-type: none;\">\n<ul>\n<li aria-level=\"1\"><a href=\"https:\/\/docs.couchbase.com\/cloud\/search\/search.html\">Full Text Search<\/a>, incluindo scoring, facets, boosting, etc.<\/li>\n<li aria-level=\"1\"><a href=\"https:\/\/docs.couchbase.com\/cloud\/n1ql\/n1ql-language-reference\/time-series.html\">Time series<\/a> opera\u00e7\u00f5es<\/li>\n<li aria-level=\"1\"><a href=\"https:\/\/docs.couchbase.com\/cloud\/n1ql\/n1ql-language-reference\/userfun.html\">User-defined functions (UDFs)<\/a> para adicionar c\u00f3digo personalizado (JavaScript or SQL)<\/li>\n<li aria-level=\"1\"><a href=\"https:\/\/docs.couchbase.com\/cloud\/n1ql\/query.html\">Full SQL capabilities<\/a>: fun\u00e7\u00f5es de janela, CTEs, JOINs, agrega\u00e7\u00e3o e muito mais<\/li>\n<li aria-level=\"1\">Leia dados anal\u00edticos em tempo real via <a href=\"https:\/\/docs.couchbase.com\/columnar\/sqlpp\/5_dml_copy_to_kv.html\">write-back<\/a><\/li>\n<li aria-level=\"1\">Consultar dados que s\u00e3o sincronizados automaticamente de <a href=\"https:\/\/docs.couchbase.com\/home\/mobile.html\">mobile\/edge devices<\/a><\/li>\n<li aria-level=\"1\">Automatic <a href=\"https:\/\/docs.couchbase.com\/server\/current\/learn\/buckets-memory-and-storage\/memory-and-storage.html\">caching<\/a> (built-in)<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p><i>Alguns bancos de dados podem ser capazes de executar apenas um subconjunto dessas opera\u00e7\u00f5es e exigir que voc\u00ea traga outras ferramentas quando precisar de funcionalidade adicional. Isso aumenta seus custos, lat\u00eancia e complexidade. Com o Couchbase, voc\u00ea pode manter seu aplicativo mais simples, r\u00e1pido e barato.\u00a0<\/i><\/p>\n<h2>Destaques t\u00e9cnicos<\/h2>\n<p>The WITT demo application referenced is built with:<\/p>\n<ul>\n<li style=\"list-style-type: none;\">\n<ul>\n<li aria-level=\"1\">React UI frontend<\/li>\n<li aria-level=\"1\">ASP.NET Core backend<\/li>\n<li aria-level=\"1\">Azure Computer Vision<\/li>\n<li aria-level=\"1\">Couchbase .NET SDK<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p>Voc\u00ea tamb\u00e9m pode conferir <a href=\"https:\/\/whatisthisthing.azurewebsites.net\/\">What is This Thing?<\/a> como uma demonstra\u00e7\u00e3o p\u00fablica. (Lembre-se de que tudo \u00e9 constru\u00eddo com hospedagem de n\u00edvel gratuito (Azure e <a href=\"https:\/\/cloud.couchbase.com\/sign-up\"><i>Capella Free Tier<\/i><\/a>) e que ainda est\u00e1 sendo desenvolvido ativamente. Se voc\u00ea notar alguma lentid\u00e3o ou tempo de inatividade, pode ser por causa de muito tr\u00e1fego, desculpe!)<\/p>\n","protected":false},"excerpt":{"rendered":"<p>H\u00e1 casos de uso que s\u00e3o melhor atendidos por v\u00e1rios tipos de acesso a dados, incluindo SQL, pesquisa vetorial, consultas geoespaciais e acesso de valor-chave. Uma abordagem \u00e9 combinar\/encadear v\u00e1rios sistemas de dados para cada m\u00e9todo de acesso. No entanto, [&hellip;]<\/p>\n","protected":false},"author":85120,"featured_media":16724,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"inline_featured_image":false,"footnotes":""},"categories":[1811,10122,10127,2165,8683,1812,9937],"tags":[9923,9966,9600,9927],"ppma_author":[9928,8937],"class_list":["post-16819","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-dotnet","category-artificial-intelligence-ai","category-c-sharp","category-full-text-search","category-geospatial","category-n1ql-query","category-vector-search","tag-embeddings","tag-hybrid-search","tag-multimodel","tag-portuguese"],"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>Plataforma \u00fanica, Couchbase multiuso: Pesquisa vetorial, geoespacial, SQL++ e muito mais - The Couchbase Blog<\/title>\n<meta name=\"description\" content=\"Descubra como a abordagem multiuso do Couchbase combina pesquisa vetorial, geoespacial, SQL++ e mais, simplificando aplica\u00e7\u00f5es complexas em uma \u00fanica plataforma.\" \/>\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\/plataforma-unica-multiuso-couchbase-pesquisa-vetorial-geoespacial-sql-mais\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Plataforma \u00fanica, Couchbase multiuso: Pesquisa vetorial, geoespacial, SQL++ e muito mais\" \/>\n<meta property=\"og:description\" content=\"Descubra como a abordagem multiuso do Couchbase combina pesquisa vetorial, geoespacial, SQL++ e mais, simplificando aplica\u00e7\u00f5es complexas em uma \u00fanica plataforma.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.couchbase.com\/blog\/plataforma-unica-multiuso-couchbase-pesquisa-vetorial-geoespacial-sql-mais\/\" \/>\n<meta property=\"og:site_name\" content=\"The Couchbase Blog\" \/>\n<meta property=\"article:published_time\" content=\"2025-01-28T21:47:56+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-12-02T13:44:53+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/12\/blog-couchbase-vector-and-more-.png\" \/>\n\t<meta property=\"og:image:width\" content=\"2400\" \/>\n\t<meta property=\"og:image:height\" content=\"1256\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Joao Lopes, Territory Account Manager, Matthew Groves\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Joao Lopes, Territory Account Manager\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"5 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/plataforma-unica-multiuso-couchbase-pesquisa-vetorial-geoespacial-sql-mais\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/plataforma-unica-multiuso-couchbase-pesquisa-vetorial-geoespacial-sql-mais\/\"},\"author\":{\"name\":\"Joao Lopes, Territory Account Manager\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/3492e8b470aa928475dd50a62fe3141e\"},\"headline\":\"Plataforma \u00fanica, Couchbase multiuso: Pesquisa vetorial, geoespacial, SQL++ e muito mais\",\"datePublished\":\"2025-01-28T21:47:56+00:00\",\"dateModified\":\"2025-12-02T13:44:53+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/plataforma-unica-multiuso-couchbase-pesquisa-vetorial-geoespacial-sql-mais\/\"},\"wordCount\":870,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/plataforma-unica-multiuso-couchbase-pesquisa-vetorial-geoespacial-sql-mais\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/12\/blog-couchbase-vector-and-more-.png\",\"keywords\":[\"embeddings\",\"hybrid search\",\"multimodel\",\"portuguese\"],\"articleSection\":[\".NET\",\"Artificial Intelligence (AI)\",\"C#\",\"Full-Text Search\",\"Geospatial\",\"SQL++ \/ N1QL Query\",\"Vector Search\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.couchbase.com\/blog\/plataforma-unica-multiuso-couchbase-pesquisa-vetorial-geoespacial-sql-mais\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/plataforma-unica-multiuso-couchbase-pesquisa-vetorial-geoespacial-sql-mais\/\",\"url\":\"https:\/\/www.couchbase.com\/blog\/plataforma-unica-multiuso-couchbase-pesquisa-vetorial-geoespacial-sql-mais\/\",\"name\":\"Plataforma \u00fanica, Couchbase multiuso: Pesquisa vetorial, geoespacial, SQL++ e muito mais - The Couchbase Blog\",\"isPartOf\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/plataforma-unica-multiuso-couchbase-pesquisa-vetorial-geoespacial-sql-mais\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/plataforma-unica-multiuso-couchbase-pesquisa-vetorial-geoespacial-sql-mais\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/12\/blog-couchbase-vector-and-more-.png\",\"datePublished\":\"2025-01-28T21:47:56+00:00\",\"dateModified\":\"2025-12-02T13:44:53+00:00\",\"description\":\"Descubra como a abordagem multiuso do Couchbase combina pesquisa vetorial, geoespacial, SQL++ e mais, simplificando aplica\u00e7\u00f5es complexas em uma \u00fanica plataforma.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/plataforma-unica-multiuso-couchbase-pesquisa-vetorial-geoespacial-sql-mais\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.couchbase.com\/blog\/plataforma-unica-multiuso-couchbase-pesquisa-vetorial-geoespacial-sql-mais\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/plataforma-unica-multiuso-couchbase-pesquisa-vetorial-geoespacial-sql-mais\/#primaryimage\",\"url\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/12\/blog-couchbase-vector-and-more-.png\",\"contentUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/12\/blog-couchbase-vector-and-more-.png\",\"width\":2400,\"height\":1256},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/plataforma-unica-multiuso-couchbase-pesquisa-vetorial-geoespacial-sql-mais\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.couchbase.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Plataforma \u00fanica, Couchbase multiuso: Pesquisa vetorial, geoespacial, SQL++ e muito mais\"}]},{\"@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\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#organization\",\"name\":\"The Couchbase Blog\",\"url\":\"https:\/\/www.couchbase.com\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@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\/3492e8b470aa928475dd50a62fe3141e\",\"name\":\"Joao Lopes, Territory Account Manager\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/image\/94bdd097673ec43d368020bf35d6ebd9\",\"url\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/03\/image_2024-03-05_172736977.png\",\"contentUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/03\/image_2024-03-05_172736977.png\",\"caption\":\"Joao Lopes, Territory Account Manager\"},\"url\":\"https:\/\/www.couchbase.com\/blog\/author\/joaolopes\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Plataforma \u00fanica, Couchbase multiuso: Pesquisa vetorial, geoespacial, SQL++ e muito mais - The Couchbase Blog","description":"Descubra como a abordagem multiuso do Couchbase combina pesquisa vetorial, geoespacial, SQL++ e mais, simplificando aplica\u00e7\u00f5es complexas em uma \u00fanica plataforma.","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\/plataforma-unica-multiuso-couchbase-pesquisa-vetorial-geoespacial-sql-mais\/","og_locale":"en_US","og_type":"article","og_title":"Plataforma \u00fanica, Couchbase multiuso: Pesquisa vetorial, geoespacial, SQL++ e muito mais","og_description":"Descubra como a abordagem multiuso do Couchbase combina pesquisa vetorial, geoespacial, SQL++ e mais, simplificando aplica\u00e7\u00f5es complexas em uma \u00fanica plataforma.","og_url":"https:\/\/www.couchbase.com\/blog\/plataforma-unica-multiuso-couchbase-pesquisa-vetorial-geoespacial-sql-mais\/","og_site_name":"The Couchbase Blog","article_published_time":"2025-01-28T21:47:56+00:00","article_modified_time":"2025-12-02T13:44:53+00:00","og_image":[{"width":2400,"height":1256,"url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/12\/blog-couchbase-vector-and-more-.png","type":"image\/png"}],"author":"Joao Lopes, Territory Account Manager, Matthew Groves","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Joao Lopes, Territory Account Manager","Est. reading time":"5 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.couchbase.com\/blog\/plataforma-unica-multiuso-couchbase-pesquisa-vetorial-geoespacial-sql-mais\/#article","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/plataforma-unica-multiuso-couchbase-pesquisa-vetorial-geoespacial-sql-mais\/"},"author":{"name":"Joao Lopes, Territory Account Manager","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/3492e8b470aa928475dd50a62fe3141e"},"headline":"Plataforma \u00fanica, Couchbase multiuso: Pesquisa vetorial, geoespacial, SQL++ e muito mais","datePublished":"2025-01-28T21:47:56+00:00","dateModified":"2025-12-02T13:44:53+00:00","mainEntityOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/plataforma-unica-multiuso-couchbase-pesquisa-vetorial-geoespacial-sql-mais\/"},"wordCount":870,"commentCount":0,"publisher":{"@id":"https:\/\/www.couchbase.com\/blog\/#organization"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/plataforma-unica-multiuso-couchbase-pesquisa-vetorial-geoespacial-sql-mais\/#primaryimage"},"thumbnailUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/12\/blog-couchbase-vector-and-more-.png","keywords":["embeddings","hybrid search","multimodel","portuguese"],"articleSection":[".NET","Artificial Intelligence (AI)","C#","Full-Text Search","Geospatial","SQL++ \/ N1QL Query","Vector Search"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.couchbase.com\/blog\/plataforma-unica-multiuso-couchbase-pesquisa-vetorial-geoespacial-sql-mais\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.couchbase.com\/blog\/plataforma-unica-multiuso-couchbase-pesquisa-vetorial-geoespacial-sql-mais\/","url":"https:\/\/www.couchbase.com\/blog\/plataforma-unica-multiuso-couchbase-pesquisa-vetorial-geoespacial-sql-mais\/","name":"Plataforma \u00fanica, Couchbase multiuso: Pesquisa vetorial, geoespacial, SQL++ e muito mais - The Couchbase Blog","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/plataforma-unica-multiuso-couchbase-pesquisa-vetorial-geoespacial-sql-mais\/#primaryimage"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/plataforma-unica-multiuso-couchbase-pesquisa-vetorial-geoespacial-sql-mais\/#primaryimage"},"thumbnailUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/12\/blog-couchbase-vector-and-more-.png","datePublished":"2025-01-28T21:47:56+00:00","dateModified":"2025-12-02T13:44:53+00:00","description":"Descubra como a abordagem multiuso do Couchbase combina pesquisa vetorial, geoespacial, SQL++ e mais, simplificando aplica\u00e7\u00f5es complexas em uma \u00fanica plataforma.","breadcrumb":{"@id":"https:\/\/www.couchbase.com\/blog\/plataforma-unica-multiuso-couchbase-pesquisa-vetorial-geoespacial-sql-mais\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.couchbase.com\/blog\/plataforma-unica-multiuso-couchbase-pesquisa-vetorial-geoespacial-sql-mais\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.couchbase.com\/blog\/plataforma-unica-multiuso-couchbase-pesquisa-vetorial-geoespacial-sql-mais\/#primaryimage","url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/12\/blog-couchbase-vector-and-more-.png","contentUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/12\/blog-couchbase-vector-and-more-.png","width":2400,"height":1256},{"@type":"BreadcrumbList","@id":"https:\/\/www.couchbase.com\/blog\/plataforma-unica-multiuso-couchbase-pesquisa-vetorial-geoespacial-sql-mais\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.couchbase.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Plataforma \u00fanica, Couchbase multiuso: Pesquisa vetorial, geoespacial, SQL++ e muito mais"}]},{"@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":"en-US"},{"@type":"Organization","@id":"https:\/\/www.couchbase.com\/blog\/#organization","name":"The Couchbase Blog","url":"https:\/\/www.couchbase.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@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\/3492e8b470aa928475dd50a62fe3141e","name":"Joao Lopes, Territory Account Manager","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/image\/94bdd097673ec43d368020bf35d6ebd9","url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/03\/image_2024-03-05_172736977.png","contentUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/03\/image_2024-03-05_172736977.png","caption":"Joao Lopes, Territory Account Manager"},"url":"https:\/\/www.couchbase.com\/blog\/author\/joaolopes\/"}]}},"authors":[{"term_id":9928,"user_id":85120,"is_guest":0,"slug":"joaolopes","display_name":"Joao Lopes, Territory Account Manager","avatar_url":{"url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/03\/image_2024-03-05_172736977.png","url2x":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/03\/image_2024-03-05_172736977.png"},"author_category":"1","last_name":"Lopes, Territory Sales, Brasil","first_name":"Joao","job_title":"Territory Sales, Brasil","user_url":"","description":""},{"term_id":8937,"user_id":71,"is_guest":0,"slug":"matthew-groves","display_name":"Matthew Groves","avatar_url":"https:\/\/secure.gravatar.com\/avatar\/70feb1b28a099ad0112b8d21fe1e81e1a4524beed3e20b7f107d5370e85a07ab?s=96&d=mm&r=g","author_category":"","last_name":"Groves","first_name":"Matthew","job_title":"","user_url":"https:\/\/crosscuttingconcerns.com","description":"Matthew D. Groves is a guy who loves to code.  It doesn't matter if it's C#, jQuery, or PHP: he'll submit pull requests for anything.  He has been coding professionally ever since he wrote a QuickBASIC point-of-sale app for his parent's pizza shop back in the 90s.  He currently works as a Senior Product Marketing Manager for Couchbase. His free time is spent with his family, watching the Reds, and getting involved in the developer community.  He is the author of AOP in .NET, Pro Microservices in .NET, a Pluralsight author, and a Microsoft MVP."}],"_links":{"self":[{"href":"https:\/\/www.couchbase.com\/blog\/wp-json\/wp\/v2\/posts\/16819","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.couchbase.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.couchbase.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/wp-json\/wp\/v2\/users\/85120"}],"replies":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/wp-json\/wp\/v2\/comments?post=16819"}],"version-history":[{"count":0,"href":"https:\/\/www.couchbase.com\/blog\/wp-json\/wp\/v2\/posts\/16819\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/wp-json\/wp\/v2\/media\/16724"}],"wp:attachment":[{"href":"https:\/\/www.couchbase.com\/blog\/wp-json\/wp\/v2\/media?parent=16819"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/wp-json\/wp\/v2\/categories?post=16819"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/wp-json\/wp\/v2\/tags?post=16819"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/wp-json\/wp\/v2\/ppma_author?post=16819"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}