{"id":7153,"date":"2019-07-03T18:54:18","date_gmt":"2019-07-04T01:54:18","guid":{"rendered":"https:\/\/www.couchbase.com\/blog\/?p=7153"},"modified":"2021-07-13T00:46:05","modified_gmt":"2021-07-13T07:46:05","slug":"a-glimpse-of-fts-performance-improvements-in-6-5-0-part-1","status":"publish","type":"post","link":"https:\/\/www.couchbase.com\/blog\/es\/a-glimpse-of-fts-performance-improvements-in-6-5-0-part-1\/","title":{"rendered":"Un vistazo a las mejoras de rendimiento de FTS en 6.5.0 - Parte 1"},"content":{"rendered":"<p><span style=\"font-weight: 400\">Desde que el m\u00e1s \u00e1gil y refinado `<\/span><a href=\"https:\/\/www.couchbase.com\/blog\/es\/scorch-index-type-why-does-it-matter\/\"><span style=\"font-weight: 400\">chamuscar<\/span><\/a><span style=\"font-weight: 400\">Con el lanzamiento del nuevo formato de indexaci\u00f3n en Couchbase 6.0.0, el equipo de FTS ha estado muy entusiasmado con el futuro potencial de optimizaci\u00f3n desbloqueado con el nuevo esquema de indexaci\u00f3n. Con la versi\u00f3n 6.5.0, nos hemos embarcado en un viaje sin fin de optimizaci\u00f3n y ajuste del rendimiento del motor de b\u00fasqueda de texto completo.<\/span><\/p>\n<p>&nbsp;<\/p>\n<p><span style=\"font-weight: 400\">Perm\u00edtanme compartir con ustedes algunas de las interesantes optimizaciones que introduciremos en la pr\u00f3xima versi\u00f3n 6.5.0.\u00a0<\/span><\/p>\n<p>&nbsp;<\/p>\n<h4><b>Consultas geogr\u00e1ficas <\/b><\/h4>\n<p><span style=\"font-weight: 400\">FTS admite dos tipos de consultas geogr\u00e1ficas. <\/span><a href=\"https:\/\/docs.couchbase.com\/server\/current\/fts\/fts-geospatial-queries.html\"><span style=\"font-weight: 400\">Distancia entre puntos y rect\u00e1ngulo delimitado<\/span><\/a><span style=\"font-weight: 400\">. Desde el inicio de la funci\u00f3n, no hemos tenido ocasi\u00f3n de revisarla y mejorarla, aunque era casi seguro que la implementaci\u00f3n de la consulta necesitaba mejoras tanto en t\u00e9rminos de memoria como de utilizaci\u00f3n de la CPU. La buena noticia es que, de todas las mejoras de rendimiento previstas en la versi\u00f3n 6.5.0, las mayores se han producido con los cambios geogr\u00e1ficos.<\/span><\/p>\n<p>&nbsp;<\/p>\n<h5><b>Oportunidad<\/b><\/h5>\n<p><span style=\"font-weight: 400\">Al analizar el elevado consumo de memoria de las consultas geogr\u00e1ficas, qued\u00f3 claro que existe un enorme potencial de ajuste del rendimiento sin explotar. En el caso de los tipos de consulta de distancia puntual y rect\u00e1ngulo delimitado, el motor de indexaci\u00f3n (<\/span><a href=\"https:\/\/github.com\/blevesearch\/bleve\"><span style=\"font-weight: 400\">bleve<\/span><\/a><span style=\"font-weight: 400\">) tiene que averiguar el rango de puntos geogr\u00e1ficos a buscar (t\u00e9rminos candidatos) que cumplen los criterios de b\u00fasqueda a partir de los par\u00e1metros de consulta dados. Bleve obtiene esos t\u00e9rminos geogr\u00e1ficos candidatos mediante ciertos pasos matem\u00e1ticos.<\/span><\/p>\n<p><span style=\"font-weight: 400\">Pero no filtraba los t\u00e9rminos geogr\u00e1ficos candidatos generados matem\u00e1ticamente. En otras palabras, se estaba produciendo una ampliaci\u00f3n involuntaria del espacio de b\u00fasqueda en segundo plano. Y esto estaba provocando la creaci\u00f3n de demasiados iteradores de b\u00fasqueda de t\u00e9rminos innecesarios o irrelevantes (por ejemplo, t\u00e9rminos que ni siquiera existen en el \u00edndice), lo que conduce a una gran cantidad de objetos temporales internos para gestionar y adem\u00e1s a\u00f1adiendo una gran sobrecarga al recolector de basura.\u00a0<\/span><\/p>\n<h5><b>Respuesta<\/b><\/h5>\n<p><span style=\"font-weight: 400\">Hemos optimizado este caso aplicando un filtrado de t\u00e9rminos geogr\u00e1ficos que b\u00e1sicamente valida la existencia de los puntos geogr\u00e1ficos generados matem\u00e1ticamente en el diccionario de t\u00e9rminos y los califica s\u00f3lo si est\u00e1n presentes en \u00e9l. Este enfoque redujo significativamente el n\u00famero de puntos geogr\u00e1ficos\/t\u00e9rminos candidatos que se buscan en el \u00edndice invertido y, por tanto, mejor\u00f3 tanto la latencia como el rendimiento de las consultas geogr\u00e1ficas.<\/span><\/p>\n<h5><b>Recompensa<\/b><\/h5>\n<p><span style=\"font-weight: 400\">Esto ha supuesto una mejora de hasta <\/span><b>6X<\/b><span style=\"font-weight: 400\"> de latencia para consultas geogr\u00e1ficas en nuestras pruebas internas.<\/span><\/p>\n<p>&nbsp;<\/p>\n<h4><b>Consultas difusas <\/b><\/h4>\n<p><span style=\"font-weight: 400\">En pre <\/span><a href=\"https:\/\/www.couchbase.com\/blog\/es\/scorch-index-type-why-does-it-matter\/\"><span style=\"font-weight: 400\">chamuscar<\/span><\/a><span style=\"font-weight: 400\"> d\u00edas, cuando un <\/span><a href=\"https:\/\/docs.couchbase.com\/server\/current\/fts\/fts-query-types.html#fuzzy-query\"><span style=\"font-weight: 400\">fuzzy\/edit-distance<\/span><\/a><span style=\"font-weight: 400\"> Cuando se recibe la consulta, el motor de indexaci\u00f3n revisa todos y cada uno de los t\u00e9rminos indexados en el campo de la consulta para calcular la distancia de edici\u00f3n y averiguar si el t\u00e9rmino actual se encuentra dentro de la distancia de edici\u00f3n solicitada con el t\u00e9rmino de la consulta. Y si cumple ese criterio de distancia de edici\u00f3n, buscar\u00e1 el t\u00e9rmino en el \u00edndice invertido para obtener la lista de documentos en los que aparece el t\u00e9rmino y los detalles necesarios seg\u00fan lo dispuesto en la consulta. (vectores de t\u00e9rminos, valores de documentos <\/span><a href=\"https:\/\/docs.couchbase.com\/server\/6.0\/fts\/fts-creating-indexes.html#inserting-a-child-field\"><span style=\"font-weight: 400\">etc<\/span><\/a><span style=\"font-weight: 400\">)\u00a0<\/span><\/p>\n<p>&nbsp;<\/p>\n<p><span style=\"font-weight: 400\">El reciente formato de indexaci\u00f3n scorch utiliza FiniteStateTransducers(<\/span><a href=\"https:\/\/en.wikipedia.org\/wiki\/Finite-state_transducer\"><span style=\"font-weight: 400\">FST<\/span><\/a><span style=\"font-weight: 400\">) para implementar el diccionario de t\u00e9rminos, que tiene este bonito aspecto <\/span><a href=\"https:\/\/cseweb.ucsd.edu\/classes\/sp15\/cse191-e\/lec3.html\"><span style=\"font-weight: 400\">DFA<\/span><\/a><span style=\"font-weight: 400\"> propiedad. Esto nos ayud\u00f3 a mejorar el enfoque novato para encontrar los t\u00e9rminos candidatos con una distancia de edici\u00f3n determinada respecto a la consulta.<\/span><\/p>\n<p>&nbsp;<\/p>\n<p><span style=\"font-weight: 400\">El planteamiento consiste en construir un <\/span><b>L<\/b><span style=\"font-weight: 400\">evenshtein <\/span><b>A<\/b><span style=\"font-weight: 400\">utomaton(<\/span><a href=\"https:\/\/en.wikipedia.org\/wiki\/Levenshtein_automaton\"><span style=\"font-weight: 400\">LA<\/span><\/a><span style=\"font-weight: 400\">) para el t\u00e9rmino dado en la consulta de distancia de edici\u00f3n. Este LA es un DFA que tiene la propiedad de emparejar todos los t\u00e9rminos que est\u00e1n como m\u00e1ximo a una distancia de edici\u00f3n dada \"d\" en la consulta. A continuaci\u00f3n, este LA DFA se unir\u00eda o intersecar\u00eda con el corpus de t\u00e9rminos indexados original\/Diccionario de T\u00e9rminos (FST DFA) para filtrar los t\u00e9rminos candidatos que deben buscarse como parte de la consulta.<\/span><\/p>\n<p>&nbsp;<\/p>\n<h5><b>Oportunidad<\/b><\/h5>\n<p><span style=\"font-weight: 400\">Hasta el lanzamiento de la versi\u00f3n 6.0, est\u00e1bamos haciendo la LA DFA de nuevo en cada consulta entrante y esta parte de construcci\u00f3n de la LA DFA result\u00f3 ser agotadora en t\u00e9rminos de uso de memoria y velocidad de construcci\u00f3n de la DFA.<\/span><\/p>\n<h5><b>Respuesta<\/b><\/h5>\n<p><span style=\"font-weight: 400\"> Inspirado en el original <\/span><a href=\"https:\/\/citeseerx.ist.psu.edu\/viewdoc\/summary?doi=10.1.1.16.652\"><span style=\"font-weight: 400\">papel<\/span><\/a><span style=\"font-weight: 400\"> y la entrada del blog - <\/span><a href=\"https:\/\/fulmicoton.com\/posts\/levenshtein\/\"><span style=\"font-weight: 400\">levenshtein<\/span><\/a><span style=\"font-weight: 400\">La nueva construcci\u00f3n de aut\u00f3matas Levenshtein adopta un enfoque de dos pasos. En el primer paso, precalcula un DFA param\u00e9trico para un conjunto de distancias de edici\u00f3n predefinidas* y esta parte es completamente independiente de la cadena de consulta, por lo que puede precalcularse. En el segundo paso, este DFA param\u00e9trico se utiliza para calcular el DFA LA por consulta. Esto hace que la construcci\u00f3n del DFA sea bastante r\u00e1pida y de memoria amigable.<\/span><\/p>\n<h5><b>Recompensa<\/b><\/h5>\n<p><span style=\"font-weight: 400\">Las pruebas comparativas de Go micro han demostrado que la nueva implementaci\u00f3n est\u00e1 a la altura de <\/span><b>5X<\/b><span style=\"font-weight: 400\"> m\u00e1s r\u00e1pido y <\/span><b>12X<\/b><span style=\"font-weight: 400\"> mejor en el uso de la memoria. Y en nuestras pruebas internas de rendimiento, esto ha llevado a <strong>~50%<\/strong> mejoras en el rendimiento de las consultas.<\/span><\/p>\n<p>&nbsp;<\/p>\n<p><span style=\"font-weight: 400\">Me alegra ver que has llegado hasta aqu\u00ed.\u00a0<\/span><\/p>\n<p><span style=\"font-weight: 400\">Perm\u00edtanme hacer aqu\u00ed una parada brusca para facilitar su atenci\u00f3n y guardar los cuentos restantes para la Parte 2. La siguiente parte tratar\u00e1 de las mejoras de rendimiento con la adopci\u00f3n de gRPC en FTS, as\u00ed como con consultas como rango num\u00e9rico, prefijo, comod\u00edn, etc.<\/span><\/p>\n<p>&nbsp;<\/p>\n<h5><strong>\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0<em> \u00a0&#8230; <a href=\"https:\/\/www.couchbase.com\/blog\/es\/fts-performance-improvements-in-6-5-0-part-2\/\">Parte 2<\/a><\/em><\/strong><\/h5>\n<p>&nbsp;<\/p>\n<p><span style=\"font-weight: 400\">{distancias de edici\u00f3n predefinidas* =&gt; en la actualidad, FTS admite distancias de edici\u00f3n de hasta 2. Es decir, s\u00f3lo 1 y 2.\u00a0<\/span><\/p>\n<p><span style=\"font-weight: 400\">La raz\u00f3n principal es que, en cualquier corpus de documentos de tama\u00f1o razonable, habr\u00e1 demasiados t\u00e9rminos que coincidan a una distancia de edici\u00f3n &gt; 2 del t\u00e9rmino buscado. Por lo tanto, cualquier b\u00fasqueda adicional en el \u00edndice consume muchos recursos, adem\u00e1s de reducir la relevancia de la b\u00fasqueda.}<\/span><\/p>","protected":false},"excerpt":{"rendered":"<p>Desde que el formato de indexaci\u00f3n `scorch`, m\u00e1s \u00e1gil y refinado, fue lanzado en Couchbase 6.0.0, el equipo de FTS ha estado muy entusiasmado con el potencial de optimizaci\u00f3n futuro desbloqueado con el nuevo esquema de indexaci\u00f3n. Con el lanzamiento de la versi\u00f3n 6.5.0, nos hemos embarcado [...]<\/p>","protected":false},"author":26446,"featured_media":5952,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"inline_featured_image":false,"footnotes":""},"categories":[1816,2165],"tags":[2378],"ppma_author":[9075],"class_list":["post-7153","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-couchbase-server","category-full-text-search","tag-6-5"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v26.5 (Yoast SEO v26.5) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>A Glimpse of FTS Performance Improvements in 6.5.0 - Part 1 - The Couchbase Blog<\/title>\n<meta name=\"description\" content=\"FTS performance improvements on geo queries, fuzzy\/edit distance queries, levenshtein automaton, FSTs, bounded rectangle, point distance queries.\" \/>\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\/a-glimpse-of-fts-performance-improvements-in-6-5-0-part-1\/\" \/>\n<meta property=\"og:locale\" content=\"es_MX\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"A Glimpse of FTS Performance Improvements in 6.5.0 - Part 1\" \/>\n<meta property=\"og:description\" content=\"FTS performance improvements on geo queries, fuzzy\/edit distance queries, levenshtein automaton, FSTs, bounded rectangle, point distance queries.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.couchbase.com\/blog\/es\/a-glimpse-of-fts-performance-improvements-in-6-5-0-part-1\/\" \/>\n<meta property=\"og:site_name\" content=\"The Couchbase Blog\" \/>\n<meta property=\"article:published_time\" content=\"2019-07-04T01:54:18+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2021-07-13T07:46:05+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2018\/11\/116-hero-liquid-water-drop.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1024\" \/>\n\t<meta property=\"og:image:height\" content=\"386\" \/>\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\/a-glimpse-of-fts-performance-improvements-in-6-5-0-part-1\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/a-glimpse-of-fts-performance-improvements-in-6-5-0-part-1\/\"},\"author\":{\"name\":\"Sreekanth Sivasankaran\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/7bbda3cf57beae8bd9cba686c0c6fe7a\"},\"headline\":\"A Glimpse of FTS Performance Improvements in 6.5.0 &#8211; Part 1\",\"datePublished\":\"2019-07-04T01:54:18+00:00\",\"dateModified\":\"2021-07-13T07:46:05+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/a-glimpse-of-fts-performance-improvements-in-6-5-0-part-1\/\"},\"wordCount\":894,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/a-glimpse-of-fts-performance-improvements-in-6-5-0-part-1\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2018\/11\/116-hero-liquid-water-drop.jpg\",\"keywords\":[\"6.5\"],\"articleSection\":[\"Couchbase Server\",\"Full-Text Search\"],\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.couchbase.com\/blog\/a-glimpse-of-fts-performance-improvements-in-6-5-0-part-1\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/a-glimpse-of-fts-performance-improvements-in-6-5-0-part-1\/\",\"url\":\"https:\/\/www.couchbase.com\/blog\/a-glimpse-of-fts-performance-improvements-in-6-5-0-part-1\/\",\"name\":\"A Glimpse of FTS Performance Improvements in 6.5.0 - Part 1 - The Couchbase Blog\",\"isPartOf\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/a-glimpse-of-fts-performance-improvements-in-6-5-0-part-1\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/a-glimpse-of-fts-performance-improvements-in-6-5-0-part-1\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2018\/11\/116-hero-liquid-water-drop.jpg\",\"datePublished\":\"2019-07-04T01:54:18+00:00\",\"dateModified\":\"2021-07-13T07:46:05+00:00\",\"description\":\"FTS performance improvements on geo queries, fuzzy\/edit distance queries, levenshtein automaton, FSTs, bounded rectangle, point distance queries.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/a-glimpse-of-fts-performance-improvements-in-6-5-0-part-1\/#breadcrumb\"},\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.couchbase.com\/blog\/a-glimpse-of-fts-performance-improvements-in-6-5-0-part-1\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/a-glimpse-of-fts-performance-improvements-in-6-5-0-part-1\/#primaryimage\",\"url\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2018\/11\/116-hero-liquid-water-drop.jpg\",\"contentUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2018\/11\/116-hero-liquid-water-drop.jpg\",\"width\":1024,\"height\":386},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/a-glimpse-of-fts-performance-improvements-in-6-5-0-part-1\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.couchbase.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"A Glimpse of FTS Performance Improvements in 6.5.0 &#8211; Part 1\"}]},{\"@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\/7bbda3cf57beae8bd9cba686c0c6fe7a\",\"name\":\"Sreekanth Sivasankaran\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/image\/a60af16118050d1ea3a927388dc4dfb7\",\"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\/es\/author\/sreekanth-sivasankaran\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Un vistazo a las mejoras de rendimiento de FTS en 6.5.0 - Parte 1 - The Couchbase Blog","description":"Mejoras del rendimiento de FTS en consultas geogr\u00e1ficas, consultas de distancia difusa\/editada, aut\u00f3mata levenshtein, FST, rect\u00e1ngulo delimitado, consultas de distancia puntual.","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\/a-glimpse-of-fts-performance-improvements-in-6-5-0-part-1\/","og_locale":"es_MX","og_type":"article","og_title":"A Glimpse of FTS Performance Improvements in 6.5.0 - Part 1","og_description":"FTS performance improvements on geo queries, fuzzy\/edit distance queries, levenshtein automaton, FSTs, bounded rectangle, point distance queries.","og_url":"https:\/\/www.couchbase.com\/blog\/es\/a-glimpse-of-fts-performance-improvements-in-6-5-0-part-1\/","og_site_name":"The Couchbase Blog","article_published_time":"2019-07-04T01:54:18+00:00","article_modified_time":"2021-07-13T07:46:05+00:00","og_image":[{"width":1024,"height":386,"url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2018\/11\/116-hero-liquid-water-drop.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\/a-glimpse-of-fts-performance-improvements-in-6-5-0-part-1\/#article","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/a-glimpse-of-fts-performance-improvements-in-6-5-0-part-1\/"},"author":{"name":"Sreekanth Sivasankaran","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/7bbda3cf57beae8bd9cba686c0c6fe7a"},"headline":"A Glimpse of FTS Performance Improvements in 6.5.0 &#8211; Part 1","datePublished":"2019-07-04T01:54:18+00:00","dateModified":"2021-07-13T07:46:05+00:00","mainEntityOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/a-glimpse-of-fts-performance-improvements-in-6-5-0-part-1\/"},"wordCount":894,"commentCount":0,"publisher":{"@id":"https:\/\/www.couchbase.com\/blog\/#organization"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/a-glimpse-of-fts-performance-improvements-in-6-5-0-part-1\/#primaryimage"},"thumbnailUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2018\/11\/116-hero-liquid-water-drop.jpg","keywords":["6.5"],"articleSection":["Couchbase Server","Full-Text Search"],"inLanguage":"es","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.couchbase.com\/blog\/a-glimpse-of-fts-performance-improvements-in-6-5-0-part-1\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.couchbase.com\/blog\/a-glimpse-of-fts-performance-improvements-in-6-5-0-part-1\/","url":"https:\/\/www.couchbase.com\/blog\/a-glimpse-of-fts-performance-improvements-in-6-5-0-part-1\/","name":"Un vistazo a las mejoras de rendimiento de FTS en 6.5.0 - Parte 1 - The Couchbase Blog","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/a-glimpse-of-fts-performance-improvements-in-6-5-0-part-1\/#primaryimage"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/a-glimpse-of-fts-performance-improvements-in-6-5-0-part-1\/#primaryimage"},"thumbnailUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2018\/11\/116-hero-liquid-water-drop.jpg","datePublished":"2019-07-04T01:54:18+00:00","dateModified":"2021-07-13T07:46:05+00:00","description":"Mejoras del rendimiento de FTS en consultas geogr\u00e1ficas, consultas de distancia difusa\/editada, aut\u00f3mata levenshtein, FST, rect\u00e1ngulo delimitado, consultas de distancia puntual.","breadcrumb":{"@id":"https:\/\/www.couchbase.com\/blog\/a-glimpse-of-fts-performance-improvements-in-6-5-0-part-1\/#breadcrumb"},"inLanguage":"es","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.couchbase.com\/blog\/a-glimpse-of-fts-performance-improvements-in-6-5-0-part-1\/"]}]},{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/www.couchbase.com\/blog\/a-glimpse-of-fts-performance-improvements-in-6-5-0-part-1\/#primaryimage","url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2018\/11\/116-hero-liquid-water-drop.jpg","contentUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2018\/11\/116-hero-liquid-water-drop.jpg","width":1024,"height":386},{"@type":"BreadcrumbList","@id":"https:\/\/www.couchbase.com\/blog\/a-glimpse-of-fts-performance-improvements-in-6-5-0-part-1\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.couchbase.com\/blog\/"},{"@type":"ListItem","position":2,"name":"A Glimpse of FTS Performance Improvements in 6.5.0 &#8211; Part 1"}]},{"@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\/7bbda3cf57beae8bd9cba686c0c6fe7a","name":"Sreekanth Sivasankaran","image":{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/image\/a60af16118050d1ea3a927388dc4dfb7","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 es Ingeniero Principal\/Gerente Superior de Ingenier\u00eda en Couchbase R&amp;D. Dirige el dise\u00f1o y desarrollo de la funcionalidad de b\u00fasqueda distribuida y de alto rendimiento. Cuenta con m\u00e1s de 17 a\u00f1os de experiencia en el desarrollo de productos en diversos \u00e1mbitos como las telecomunicaciones, los tel\u00e9fonos m\u00f3viles, el software empresarial, las tecnolog\u00edas de macrodatos y los sistemas distribuidos.","url":"https:\/\/www.couchbase.com\/blog\/es\/author\/sreekanth-sivasankaran\/"}]}},"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","author_category":"","last_name":"Sivasankaran","first_name":"Sreekanth","job_title":"","user_url":"","description":"Sreekanth Sivasankaran es Ingeniero Principal\/Gerente Superior de Ingenier\u00eda en Couchbase R&amp;D. Dirige el dise\u00f1o y desarrollo de la funcionalidad de b\u00fasqueda distribuida y de alto rendimiento. Cuenta con m\u00e1s de 17 a\u00f1os de experiencia en el desarrollo de productos en diversos \u00e1mbitos como las telecomunicaciones, los tel\u00e9fonos m\u00f3viles, el software empresarial, las tecnolog\u00edas de big data y los sistemas distribuidos."}],"_links":{"self":[{"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/posts\/7153","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\/26446"}],"replies":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/comments?post=7153"}],"version-history":[{"count":0,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/posts\/7153\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/media\/5952"}],"wp:attachment":[{"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/media?parent=7153"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/categories?post=7153"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/tags?post=7153"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/ppma_author?post=7153"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}