{"id":15770,"date":"2024-05-28T15:11:01","date_gmt":"2024-05-28T22:11:01","guid":{"rendered":"https:\/\/www.couchbase.com\/blog\/?p=15770"},"modified":"2025-06-13T20:19:14","modified_gmt":"2025-06-14T03:19:14","slug":"querying-vectors-challenges","status":"publish","type":"post","link":"https:\/\/www.couchbase.com\/blog\/es\/querying-vectors-challenges\/","title":{"rendered":"Vectores de consulta y lo que puede fallar con ellos"},"content":{"rendered":"<p><span style=\"font-weight: 400;\">Couchbase 7.6 presenta <a href=\"https:\/\/www.couchbase.com\/blog\/es\/announcing-vector-search\/\">B\u00fasqueda vectorial en la arquitectura Couchbase<\/a>est\u00e1 ampliando sus capacidades de b\u00fasqueda a pasos agigantados. Este art\u00edculo muestra c\u00f3mo afecta esto a las consultas de b\u00fasqueda, c\u00f3mo tenemos que adaptarnos en determinadas situaciones y c\u00f3mo utilizar eficientemente esta \u00faltima caracter\u00edstica. Para asegurarse de que sus b\u00fasquedas vectoriales son las mejores posibles, debe ser consciente de problemas como las consultas lentas causadas por \u00edndices ineficaces, consultas ineficientes o datos que cambian con frecuencia, as\u00ed como otros casos de fallo como tiempos de espera, errores de coherencia, app herder, etc.<\/span><\/p>\n<h2><span style=\"font-weight: 400;\">Introducci\u00f3n a las consultas vectoriales<\/span><\/h2>\n<p><span style=\"font-weight: 400;\">Hubo que adaptar las consultas de b\u00fasqueda para permitir el uso de vectores. Se trata esencialmente de un nuevo tipo de consulta que permite <\/span><i><span style=\"font-weight: 400;\">b\u00fasqueda de similitudes<\/span><\/i><span style=\"font-weight: 400;\"> en lugar de la b\u00fasqueda exacta. La diferencia es que ya no buscamos coincidencias exactas cuando se trata de vectores, sino las m\u00e1s pr\u00f3ximas al vector especificado en la consulta:<\/span><\/p>\n<pre class=\"nums:false lang:js decode:true\">{\r\n  \"consulta\": {\r\n    \"match_none\": {}\r\n  },\r\n  \"knn\": [\r\n    {\r\n      \"field\": \"vector\",\r\n      \"vector\": [0.04603520780801773, ..., -0.08424953371286392],\r\n      \"k\": 3\r\n    }\r\n  ]\r\n}<\/pre>\n<p><span style=\"font-weight: 400;\">Se trata de una consulta vectorial. Difiere bastante de una consulta normal. Todas las partes vectoriales de la consulta est\u00e1n bajo una nueva clave llamada <em>knn<\/em>introducido con el \u00fanico fin de realizar consultas vectoriales. El sitio <em>k<\/em> en la consulta determina el n\u00famero de documentos que queremos en los resultados. Esto es necesario porque en lugar de buscar la coincidencia exacta, nos preocupa encontrar la <em>k<\/em> vectores m\u00e1s cercanos al vector buscado. Esta consulta acabar\u00e1 devolviendo tres vectores que la b\u00fasqueda considera que son los m\u00e1s cercanos al vector de consulta.<\/span><\/p>\n<pre class=\"nums:false lang:js decode:true\">{\r\n  \"consulta\": \"content:car\",\r\n  \"knn\": [\r\n    {\r\n      \"field\": \"vector\",\r\n      \"vector\": [0.04603520780801773, ..., -0.08424953371286392],\r\n      \"k\": 3\r\n    }\r\n  ]\r\n}<\/pre>\n<p><span style=\"font-weight: 400;\">Tambi\u00e9n puede combinar una consulta vectorial con una consulta normal para obtener un <\/span><a href=\"https:\/\/www.couchbase.com\/blog\/es\/hybrid-search\/\"><i><span style=\"font-weight: 400;\">b\u00fasqueda h\u00edbrida<\/span><\/i><\/a><span style=\"font-weight: 400;\">. En este caso, la b\u00fasqueda realiza la consulta en dos fases. En la primera fase se realiza la b\u00fasqueda vectorial, fusionando todos los resultados de las distintas particiones, y en la segunda fase se realiza la b\u00fasqueda regular, utilizando los resultados de la primera fase. Este enfoque permite un mejor rendimiento tanto en t\u00e9rminos de tiempo como de cantidad de datos pasados entre los nodos.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Ahora que ya sabemos c\u00f3mo consultar vectores, repasemos las situaciones de fallo m\u00e1s habituales. \u00bfQu\u00e9 puede fallar durante una consulta vectorial?<\/span><\/p>\n<h2><span style=\"font-weight: 400;\">Identificaci\u00f3n de consultas lentas<\/span><\/h2>\n<p><span style=\"font-weight: 400;\">Uno de los tipos m\u00e1s comunes de fallo de consulta es la consulta lenta. Se denomina consulta lenta a aquella que permanece mucho tiempo proces\u00e1ndose en el sistema. Dependiendo del tiempo de espera establecido para esta consulta, puede permanecer en ejecuci\u00f3n durante mucho tiempo.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Hay muchas razones por las que esto ocurre. Una de las m\u00e1s sencillas es que la ejecuci\u00f3n de una consulta sea demasiado costosa. Esto puede deberse a que haga referencia a demasiados documentos, a que el n\u00famero de documentos indexados sea enorme o a que el tipo de consulta sea comparativamente ineficiente.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">En t\u00e9rminos vectoriales, las causas m\u00e1s comunes de una consulta lenta se deben a un gran tama\u00f1o del \u00edndice con un n\u00famero insuficiente de particiones, un gran valor K en la consulta o incluso una alta tasa de ingesta de datos.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Ahora que sabemos lo que es una consulta lenta, la siguiente pregunta que nos viene a la cabeza es, \u00bfc\u00f3mo sabemos que hay una consulta lenta en ejecuci\u00f3n? Una de las mejores maneras de hacerlo es comprobar los registros. Una consulta lenta se registrar\u00e1 cada 5 segundos. Este temporizador puede cambiarse utilizando las opciones del gestor y la l\u00ednea de registro tendr\u00e1 el siguiente aspecto:<\/span><\/p>\n<p><span style=\"font-weight: 400;\"><a href=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2024\/05\/image1-2.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-15771\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2024\/05\/image1-2.png\" alt=\"\" width=\"570\" height=\"128\" srcset=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/05\/image1-2.png 570w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/05\/image1-2-300x67.png 300w\" sizes=\"auto, (max-width: 570px) 100vw, 570px\" \/><\/a><\/span><\/p>\n<p><span style=\"font-weight: 400;\">Otra forma es mirar las estad\u00edsticas. Hay una estad\u00edstica disponible en <\/span><i><span style=\"font-weight: 400;\">\/api\/nsstats<\/span><\/i><span style=\"font-weight: 400;\"> llamado <\/span><i><span style=\"font-weight: 400;\">total_consultas_lentas<\/span><\/i><span style=\"font-weight: 400;\"> que registrar\u00e1 el n\u00famero de veces que se ha detectado una consulta lenta:<\/span><\/p>\n<p><a href=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2024\/05\/image8.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-large wp-image-15778\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2024\/05\/image8.png\" alt=\"\" width=\"498\" height=\"109\" srcset=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/05\/image8.png 498w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/05\/image8-300x66.png 300w\" sizes=\"auto, (max-width: 498px) 100vw, 498px\" \/><\/a><\/p>\n<p><span style=\"font-weight: 400;\">Tambi\u00e9n hay algunas estad\u00edsticas m\u00e1s que se pueden observar en el mismo endpoint que podr\u00edan darnos alguna pista sobre lo que est\u00e1 ocurriendo con la consulta internamente y d\u00f3nde podr\u00edan estar los problemas:<\/span><\/p>\n<ul>\n<li style=\"list-style-type: none;\">\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">avg_grpc_internal_queries_latency - <\/span><span style=\"font-weight: 400;\">Tiempo medio que tarda el grpc en procesar una consulta procedente de otro nodo<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">avg_grpc_queries_latency -\u00a0<\/span><span style=\"font-weight: 400;\">Tiempo medio que tarda el grpc en procesar una consulta originada en el mismo nodo<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">avg_internal_queries_latency -\u00a0<\/span><span style=\"font-weight: 400;\">Tiempo medio de tratamiento de una consulta procedente de otro nodo<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">avg_queries_latency - <\/span><span style=\"font-weight: 400;\">Tiempo medio empleado en procesar una consulta originada en el mismo nodo<\/span><\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<h2><span style=\"font-weight: 400;\">Factores que contribuyen a la lentitud de las consultas<\/span><\/h2>\n<p><span style=\"font-weight: 400;\">Ahora que sabemos c\u00f3mo identificar una consulta lenta, el siguiente paso es entender por qu\u00e9 se produce y qu\u00e9 podemos hacer para minimizarla.<\/span><\/p>\n<h3><span style=\"font-weight: 400;\">\u00cdndice de ineficiencia<\/span><\/h3>\n<p><span style=\"font-weight: 400;\">Uno de los principales factores es el propio \u00edndice, el n\u00famero de vectores indexados, el n\u00famero de particiones o el n\u00famero de nodos. Cada uno de estos factores es crucial para el rendimiento de las consultas.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">El n\u00famero de vectores indexados es un factor que se explica por s\u00ed mismo: cuanto mayor sea el n\u00famero de vectores, m\u00e1s tiempo se tardar\u00e1 en consultarlos. A partir de la versi\u00f3n 7.6.0 puede deducirse aproximadamente a partir del n\u00famero de documentos, pero el siguiente parche de mantenimiento incluir\u00e1 una estad\u00edstica que nos dar\u00e1 el valor exacto.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">El n\u00famero de particiones y nodos puede explicarse de forma intuitiva. Tomemos el ejemplo de una persona que revisa un mont\u00f3n de papeles en su escritorio.<\/span><\/p>\n<p><a href=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2024\/05\/image3.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone  wp-image-15773\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2024\/05\/image3.png\" alt=\"\" width=\"551\" height=\"333\" srcset=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/05\/image3.png 880w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/05\/image3-300x181.png 300w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/05\/image3-768x464.png 768w\" sizes=\"auto, (max-width: 551px) 100vw, 551px\" \/><\/a><\/p>\n<p><span style=\"font-weight: 400;\">Hay muchos papeles y una sola persona, as\u00ed que tarda m\u00e1s en encontrar lo que busca. Ahora a\u00f1adamos una persona m\u00e1s en la misma mesa que revise la mitad de los documentos. Obviamente, esto reduce el tiempo necesario para encontrar los documentos correctos.<\/span><\/p>\n<p><a href=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2024\/05\/image4.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone  wp-image-15774\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2024\/05\/image4.png\" alt=\"\" width=\"484\" height=\"344\" srcset=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/05\/image4.png 694w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/05\/image4-300x214.png 300w\" sizes=\"auto, (max-width: 484px) 100vw, 484px\" \/><\/a><\/p>\n<p><span style=\"font-weight: 400;\">Podemos seguir a\u00f1adiendo m\u00e1s personas a un mismo mostrador, pero llega un momento en que se acaba el espacio disponible y algunas se quedan esperando porque el mostrador est\u00e1 demasiado lleno.<\/span><\/p>\n<p><a href=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2024\/05\/image5.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone  wp-image-15775\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2024\/05\/image5.png\" alt=\"\" width=\"540\" height=\"341\" srcset=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/05\/image5.png 820w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/05\/image5-300x190.png 300w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/05\/image5-768x485.png 768w\" sizes=\"auto, (max-width: 540px) 100vw, 540px\" \/><\/a><br style=\"font-weight: 400;\" \/><br style=\"font-weight: 400;\" \/><\/p>\n<p><span style=\"font-weight: 400;\">La soluci\u00f3n m\u00e1s sencilla es a\u00f1adir otra mesa o comprar una m\u00e1s grande, para que m\u00e1s personas puedan sentarse y revisar los papeles a la vez.<\/span><\/p>\n<p><a href=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2024\/05\/image2-1.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone  wp-image-15772\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2024\/05\/image2-1-1024x435.png\" alt=\"\" width=\"542\" height=\"230\" srcset=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/05\/image2-1-1024x435.png 1024w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/05\/image2-1-300x128.png 300w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/05\/image2-1-768x327.png 768w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/05\/image2-1.png 1270w\" sizes=\"auto, (max-width: 542px) 100vw, 542px\" \/><\/a><\/p>\n<p><span style=\"font-weight: 400;\">Este ejemplo es similar al ecosistema de b\u00fasqueda. Las personas son las particiones, los documentos son los vectores y las mesas son los nodos. Un mayor n\u00famero de escritorios significa una mayor cantidad de recursos para atender a m\u00e1s personas. M\u00e1s personas significa una b\u00fasqueda m\u00e1s r\u00e1pida, pero demasiadas personas significan m\u00e1s comunicaci\u00f3n entre ellas para obtener los resultados, lo que de nuevo ser\u00e1 contraproducente. Cada sistema tiene su equilibrio y es importante encontrarlo para ser eficaz.<\/span><\/p>\n<h2><span style=\"font-weight: 400;\">Consulta ineficaz<\/span><\/h2>\n<p><span style=\"font-weight: 400;\">Otro factor importante que determina la cantidad de tiempo que una consulta vectorial pasa en el sistema es el valor K. Un valor K mayor significa que cada partici\u00f3n del \u00edndice tarda m\u00e1s en procesar la consulta, que es necesario transferir una mayor cantidad de datos entre nodos, que se necesitan b\u00faferes m\u00e1s grandes para contener todos estos datos y condensar los resultados K de cada partici\u00f3n (<\/span><i><span style=\"font-weight: 400;\">total K * n\u00famero de particiones valor de los resultados<\/span><\/i><span style=\"font-weight: 400;\">) en los resultados finales de K. Cada uno de estos pasos lleva cada vez m\u00e1s tiempo a medida que aumenta el valor de K.<\/span><\/p>\n<p><a href=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2024\/05\/image7.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-large wp-image-15777\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2024\/05\/image7-1024x389.png\" alt=\"\" width=\"900\" height=\"342\" srcset=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/05\/image7-1024x389.png 1024w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/05\/image7-300x114.png 300w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/05\/image7-768x292.png 768w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/05\/image7-1536x584.png 1536w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/05\/image7-1320x502.png 1320w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/05\/image7.png 1999w\" sizes=\"auto, (max-width: 900px) 100vw, 900px\" \/><\/a><\/p>\n<p><span style=\"font-weight: 400;\">Volviendo al ejemplo anterior, un valor K grande significar\u00e1 que cada persona tendr\u00e1 que rastrear una pila m\u00e1s grande de documentos, y cuando todos hayan terminado, ahora tendr\u00e1n que comparar todas las pilas de documentos que preseleccionaron para encontrar los K mejores documentos.<\/span><\/p>\n<h2><span style=\"font-weight: 400;\">Datos en constante cambio<\/span><\/h2>\n<p><span style=\"font-weight: 400;\">La \u00faltima pieza de este rompecabezas son los propios documentos. La b\u00fasqueda sigue una arquitectura de s\u00f3lo anexi\u00f3n. Esto significa que cada cambio en el documento se a\u00f1ade, indexa y almacena por separado en lugar de reescribir la entrada del documento existente. Con un gran n\u00famero de cambios en los documentos reales, obtenemos un \u00edndice muy ocupado con la creaci\u00f3n constante de segmentos y la fusi\u00f3n constante de estos segmentos. Estas operaciones consumen muchos recursos, lo que afectar\u00e1 a las consultas, ya que no les quedar\u00e1 mucho con lo que trabajar.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Pi\u00e9nsalo como si la gente te trajera nuevas pilas de papeles mientras t\u00fa intentas encontrar lo que buscas. Es desordenado, no tienes suficiente espacio en la mesa, no paran de llegar papeles nuevos y tienes que hacer un seguimiento de los duplicados por si se trata de un documento actualizado.<\/span><\/p>\n<p><a href=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2024\/05\/image6.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone  wp-image-15776\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2024\/05\/image6-1024x438.png\" alt=\"\" width=\"631\" height=\"270\" srcset=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/05\/image6-1024x438.png 1024w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/05\/image6-300x128.png 300w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/05\/image6-768x328.png 768w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/05\/image6-1536x657.png 1536w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/05\/image6-1320x565.png 1320w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/05\/image6.png 1999w\" sizes=\"auto, (max-width: 631px) 100vw, 631px\" \/><\/a><\/p>\n<h2>Otros asuntos<\/h2>\n<p><span style=\"font-weight: 400;\">Las consultas lentas no son la \u00fanica raz\u00f3n por la que una consulta puede fallar. Algunos de los otros escenarios de fallo incluyen:<\/span><\/p>\n<p style=\"padding-left: 40px;\"><strong>Tiempo de espera de la consulta<\/strong><\/p>\n<p style=\"padding-left: 40px;\"><span style=\"font-weight: 400;\">Se trata de una consulta lenta que alcanza el l\u00edmite de tiempo m\u00e1ximo establecido por el usuario. Se debe a las mismas razones que las consultas lentas y se controla mediante total_queries_timeout.<\/span><\/p>\n<p style=\"padding-left: 40px;\"><strong>La ventana de resultado m\u00e1ximo excede<\/strong><\/p>\n<p style=\"padding-left: 40px;\"><span style=\"font-weight: 400;\">Esto ocurre cuando tienes una consulta que necesita m\u00e1s hits que el l\u00edmite maxResultWindow establecido para el cluster. Este valor por defecto es 10000 pero puede ser configurado a trav\u00e9s de la API de opciones del gestor. Existe para evitar el flujo accidental de grandes cantidades de datos.<\/span><\/p>\n<p style=\"padding-left: 40px;\"><strong>Resultados parciales<\/strong><\/p>\n<p style=\"padding-left: 40px;\"><span style=\"font-weight: 400;\">Esto ocurre cuando una de las particiones no est\u00e1 disponible y no envi\u00f3 sus resultados al nodo que recibi\u00f3 la consulta.<\/span><\/p>\n<p style=\"padding-left: 40px;\"><strong>Rechazado por app herder<\/strong><\/p>\n<p style=\"padding-left: 40px;\"><span style=\"font-weight: 400;\">El app herder es el \u00faltimo punto de control para garantizar que los recursos del sistema se mantienen dentro de los l\u00edmites establecidos. Cuando una consulta amenaza con superar el l\u00edmite, lo que puede ocurrir debido a una gran carga de consultas o de indexaci\u00f3n o a una operaci\u00f3n de reequilibrio o a una combinaci\u00f3n de las tres, el app herder cierra preventivamente la consulta impidiendo su ejecuci\u00f3n.<\/span><\/p>\n<p style=\"padding-left: 40px;\"><strong>Fallo de b\u00fasqueda en contexto<\/strong><\/p>\n<p style=\"padding-left: 40px;\"><span style=\"font-weight: 400;\">Esto cubre todos los posibles errores que pueden ocurrir dentro de bleve como cualquier problema con la interacci\u00f3n con los archivos de \u00edndice y tal.<\/span><\/p>\n<p style=\"padding-left: 40px;\"><strong>Errores de coherencia<\/strong><\/p>\n<p style=\"padding-left: 40px;\"><span style=\"font-weight: 400;\">Los errores en la especificaci\u00f3n de los par\u00e1metros de coherencia provocan el fallo de una consulta. Estos par\u00e1metros incluyen el nivel de coherencia de los datos, los resultados y otras variables relacionadas.<\/span><\/p>\n<p style=\"padding-left: 40px;\"><strong>Malas peticiones<\/strong><\/p>\n<p style=\"padding-left: 40px;\"><span style=\"font-weight: 400;\">Este es el m\u00e1s simple y consiste b\u00e1sicamente en un error del usuario al realizar una consulta. Puede ser un error tipogr\u00e1fico, una mala estructura json o cadenas de consulta no v\u00e1lidas.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">La introducci\u00f3n de la b\u00fasqueda vectorial ampl\u00eda las capacidades de b\u00fasqueda de Couchbase m\u00e1s all\u00e1 de los l\u00edmites y casos de uso anteriores. Para aprovechar esta caracter\u00edstica de manera efectiva, los usuarios necesitan entender sus funcionalidades, incluyendo la consulta, indexaci\u00f3n de datos, y la gesti\u00f3n de los comportamientos del sistema en diversas condiciones. Para una comprensi\u00f3n a\u00fan m\u00e1s profunda de la b\u00fasqueda vectorial, su funcionalidad y capacidades, explora algunos de los otros blogs de nuestro sitio.<\/span><\/p>\n<h2>Pr\u00f3ximos pasos<\/h2>\n<ul>\n<li style=\"list-style-type: none;\">\n<ul>\n<li>M\u00e1s informaci\u00f3n <a href=\"https:\/\/www.couchbase.com\/blog\/es\/category\/vector-search\/\">Conceptos de b\u00fasqueda vectorial<\/a> en nuestros blogs, incluidos tutoriales y conceptos.<\/li>\n<li><a href=\"https:\/\/www.couchbase.com\/blog\/es\/products\/capella\/\">Prueba gratuita de Couchbase Capella<\/a> incluye b\u00fasqueda vectorial, entre otras muchas funciones. Pru\u00e9belo hoy mismo.<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p><a href=\"https:\/\/www.couchbase.com\/blog\/es\/products\/capella\/\"><img loading=\"lazy\" decoding=\"async\" class=\"size-large wp-image-15744 aligncenter\" style=\"border: solid 1px; border-radius: 25px;\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2024\/05\/Screenshot-2024-05-22-at-2.40.17\u202fPM-1024x357.png\" alt=\"\" width=\"900\" height=\"314\" srcset=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/05\/Screenshot-2024-05-22-at-2.40.17\u202fPM-1024x357.png 1024w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/05\/Screenshot-2024-05-22-at-2.40.17\u202fPM-300x105.png 300w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/05\/Screenshot-2024-05-22-at-2.40.17\u202fPM-768x268.png 768w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/05\/Screenshot-2024-05-22-at-2.40.17\u202fPM-1536x536.png 1536w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/05\/Screenshot-2024-05-22-at-2.40.17\u202fPM-2048x715.png 2048w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/05\/Screenshot-2024-05-22-at-2.40.17\u202fPM-800x280.png 800w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/05\/Screenshot-2024-05-22-at-2.40.17\u202fPM-1320x461.png 1320w\" sizes=\"auto, (max-width: 900px) 100vw, 900px\" \/><\/a><\/p>","protected":false},"excerpt":{"rendered":"<p>Couchbase 7.6 introduces Vector Search into the Couchbase architecture, expanding its search capabilities by leaps and bounds. This article showcases how this affects search queries, how we have to adapt in certain situations and how to efficiently use this latest [&hellip;]<\/p>","protected":false},"author":85298,"featured_media":15777,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"inline_featured_image":false,"footnotes":""},"categories":[10122,2225,1816,9417,9936,9937],"tags":[9966],"ppma_author":[9972],"class_list":["post-15770","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-artificial-intelligence-ai","category-cloud","category-couchbase-server","category-performance","category-search","category-vector-search","tag-hybrid-search"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v26.2 (Yoast SEO v26.2) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Querying Vectors And Things That Can Go Wrong With Them - The Couchbase Blog<\/title>\n<meta name=\"description\" content=\"For the best vector searches, you need to be aware of slow queries caused by inefficient indexes, inefficient queries or frequently changing data, etc.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.couchbase.com\/blog\/es\/querying-vectors-challenges\/\" \/>\n<meta property=\"og:locale\" content=\"es_MX\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Querying Vectors And Things That Can Go Wrong With Them\" \/>\n<meta property=\"og:description\" content=\"For the best vector searches, you need to be aware of slow queries caused by inefficient indexes, inefficient queries or frequently changing data, etc.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.couchbase.com\/blog\/es\/querying-vectors-challenges\/\" \/>\n<meta property=\"og:site_name\" content=\"The Couchbase Blog\" \/>\n<meta property=\"article:published_time\" content=\"2024-05-28T22:11:01+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-06-14T03:19:14+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/05\/image7.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1999\" \/>\n\t<meta property=\"og:image:height\" content=\"760\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Likith B, 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=\"Likith B, Software Engineer\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"10 minutos\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/querying-vectors-challenges\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/querying-vectors-challenges\/\"},\"author\":{\"name\":\"Likith B, Software Engineer\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/dd7ad9b8eb78bdce2fe68e940518a7f6\"},\"headline\":\"Querying Vectors And Things That Can Go Wrong With Them\",\"datePublished\":\"2024-05-28T22:11:01+00:00\",\"dateModified\":\"2025-06-14T03:19:14+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/querying-vectors-challenges\/\"},\"wordCount\":1691,\"commentCount\":1,\"publisher\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/querying-vectors-challenges\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/05\/image7.png\",\"keywords\":[\"hybrid search\"],\"articleSection\":[\"Artificial Intelligence (AI)\",\"Couchbase Capella\",\"Couchbase Server\",\"High Performance\",\"Search\",\"Vector Search\"],\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.couchbase.com\/blog\/querying-vectors-challenges\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/querying-vectors-challenges\/\",\"url\":\"https:\/\/www.couchbase.com\/blog\/querying-vectors-challenges\/\",\"name\":\"Querying Vectors And Things That Can Go Wrong With Them - The Couchbase Blog\",\"isPartOf\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/querying-vectors-challenges\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/querying-vectors-challenges\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/05\/image7.png\",\"datePublished\":\"2024-05-28T22:11:01+00:00\",\"dateModified\":\"2025-06-14T03:19:14+00:00\",\"description\":\"For the best vector searches, you need to be aware of slow queries caused by inefficient indexes, inefficient queries or frequently changing data, etc.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/querying-vectors-challenges\/#breadcrumb\"},\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.couchbase.com\/blog\/querying-vectors-challenges\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/querying-vectors-challenges\/#primaryimage\",\"url\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/05\/image7.png\",\"contentUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/05\/image7.png\",\"width\":1999,\"height\":760},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/querying-vectors-challenges\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.couchbase.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Querying Vectors And Things That Can Go Wrong With Them\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#website\",\"url\":\"https:\/\/www.couchbase.com\/blog\/\",\"name\":\"The Couchbase Blog\",\"description\":\"Couchbase, the NoSQL Database\",\"publisher\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.couchbase.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"es\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#organization\",\"name\":\"The Couchbase Blog\",\"url\":\"https:\/\/www.couchbase.com\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2023\/04\/admin-logo.png\",\"contentUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2023\/04\/admin-logo.png\",\"width\":218,\"height\":34,\"caption\":\"The Couchbase Blog\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/logo\/image\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/dd7ad9b8eb78bdce2fe68e940518a7f6\",\"name\":\"Likith B, Software Engineer\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/image\/a834fd56b316ec42fcf7705d52c8e604\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/ebf7761bbd5fa10448361e3b6fcb229cf6c297eee4be1b3ce3a3e391896cb098?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/ebf7761bbd5fa10448361e3b6fcb229cf6c297eee4be1b3ce3a3e391896cb098?s=96&d=mm&r=g\",\"caption\":\"Likith B, Software Engineer\"},\"url\":\"https:\/\/www.couchbase.com\/blog\/es\/author\/likithb\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Querying Vectors And Things That Can Go Wrong With Them - The Couchbase Blog","description":"Para realizar las mejores b\u00fasquedas vectoriales, hay que tener en cuenta las consultas lentas causadas por \u00edndices ineficaces, consultas ineficientes o datos que cambian con frecuencia, etc.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.couchbase.com\/blog\/es\/querying-vectors-challenges\/","og_locale":"es_MX","og_type":"article","og_title":"Querying Vectors And Things That Can Go Wrong With Them","og_description":"For the best vector searches, you need to be aware of slow queries caused by inefficient indexes, inefficient queries or frequently changing data, etc.","og_url":"https:\/\/www.couchbase.com\/blog\/es\/querying-vectors-challenges\/","og_site_name":"The Couchbase Blog","article_published_time":"2024-05-28T22:11:01+00:00","article_modified_time":"2025-06-14T03:19:14+00:00","og_image":[{"width":1999,"height":760,"url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/05\/image7.png","type":"image\/png"}],"author":"Likith B, Software Engineer","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Likith B, Software Engineer","Est. reading time":"10 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.couchbase.com\/blog\/querying-vectors-challenges\/#article","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/querying-vectors-challenges\/"},"author":{"name":"Likith B, Software Engineer","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/dd7ad9b8eb78bdce2fe68e940518a7f6"},"headline":"Querying Vectors And Things That Can Go Wrong With Them","datePublished":"2024-05-28T22:11:01+00:00","dateModified":"2025-06-14T03:19:14+00:00","mainEntityOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/querying-vectors-challenges\/"},"wordCount":1691,"commentCount":1,"publisher":{"@id":"https:\/\/www.couchbase.com\/blog\/#organization"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/querying-vectors-challenges\/#primaryimage"},"thumbnailUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/05\/image7.png","keywords":["hybrid search"],"articleSection":["Artificial Intelligence (AI)","Couchbase Capella","Couchbase Server","High Performance","Search","Vector Search"],"inLanguage":"es","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.couchbase.com\/blog\/querying-vectors-challenges\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.couchbase.com\/blog\/querying-vectors-challenges\/","url":"https:\/\/www.couchbase.com\/blog\/querying-vectors-challenges\/","name":"Querying Vectors And Things That Can Go Wrong With Them - The Couchbase Blog","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/querying-vectors-challenges\/#primaryimage"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/querying-vectors-challenges\/#primaryimage"},"thumbnailUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/05\/image7.png","datePublished":"2024-05-28T22:11:01+00:00","dateModified":"2025-06-14T03:19:14+00:00","description":"Para realizar las mejores b\u00fasquedas vectoriales, hay que tener en cuenta las consultas lentas causadas por \u00edndices ineficaces, consultas ineficientes o datos que cambian con frecuencia, etc.","breadcrumb":{"@id":"https:\/\/www.couchbase.com\/blog\/querying-vectors-challenges\/#breadcrumb"},"inLanguage":"es","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.couchbase.com\/blog\/querying-vectors-challenges\/"]}]},{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/www.couchbase.com\/blog\/querying-vectors-challenges\/#primaryimage","url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/05\/image7.png","contentUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/05\/image7.png","width":1999,"height":760},{"@type":"BreadcrumbList","@id":"https:\/\/www.couchbase.com\/blog\/querying-vectors-challenges\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.couchbase.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Querying Vectors And Things That Can Go Wrong With Them"}]},{"@type":"WebSite","@id":"https:\/\/www.couchbase.com\/blog\/#website","url":"https:\/\/www.couchbase.com\/blog\/","name":"El blog de Couchbase","description":"Couchbase, la base de datos NoSQL","publisher":{"@id":"https:\/\/www.couchbase.com\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.couchbase.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"es"},{"@type":"Organization","@id":"https:\/\/www.couchbase.com\/blog\/#organization","name":"El blog de Couchbase","url":"https:\/\/www.couchbase.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2023\/04\/admin-logo.png","contentUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2023\/04\/admin-logo.png","width":218,"height":34,"caption":"The Couchbase Blog"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/dd7ad9b8eb78bdce2fe68e940518a7f6","name":"Likith B, Ingeniero de software","image":{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/image\/a834fd56b316ec42fcf7705d52c8e604","url":"https:\/\/secure.gravatar.com\/avatar\/ebf7761bbd5fa10448361e3b6fcb229cf6c297eee4be1b3ce3a3e391896cb098?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/ebf7761bbd5fa10448361e3b6fcb229cf6c297eee4be1b3ce3a3e391896cb098?s=96&d=mm&r=g","caption":"Likith B, Software Engineer"},"url":"https:\/\/www.couchbase.com\/blog\/es\/author\/likithb\/"}]}},"authors":[{"term_id":9972,"user_id":85298,"is_guest":0,"slug":"likithb","display_name":"Likith B, Software Engineer","avatar_url":"https:\/\/secure.gravatar.com\/avatar\/ebf7761bbd5fa10448361e3b6fcb229cf6c297eee4be1b3ce3a3e391896cb098?s=96&d=mm&r=g","author_category":"","last_name":"B, Software Engineer","first_name":"Likith","job_title":"","user_url":"","description":""}],"_links":{"self":[{"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/posts\/15770","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/users\/85298"}],"replies":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/comments?post=15770"}],"version-history":[{"count":0,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/posts\/15770\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/media\/15777"}],"wp:attachment":[{"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/media?parent=15770"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/categories?post=15770"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/tags?post=15770"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/ppma_author?post=15770"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}