{"id":2506,"date":"2017-01-20T13:04:50","date_gmt":"2017-01-20T13:04:50","guid":{"rendered":"https:\/\/www.couchbase.com\/blog\/?p=2506"},"modified":"2025-06-13T20:59:35","modified_gmt":"2025-06-14T03:59:35","slug":"couchbase-developer-release-new-fts","status":"publish","type":"post","link":"https:\/\/www.couchbase.com\/blog\/es\/couchbase-developer-release-new-fts\/","title":{"rendered":"Couchbase Developer Release - \u00bfQu\u00e9 hay de nuevo para FTS?"},"content":{"rendered":"<p>Couchbase FTS es nuestro nuevo motor de \u00cdndice y Consulta de Texto Completo. Ya lo presentamos el a\u00f1o pasado, le invito a leer <a href=\"https:\/\/www.couchbase.com\/blog\/es\/couchbase-4.5-developer-preview-couchbase-fts\/\">esta entrada<\/a> y el <a href=\"https:\/\/developer.couchbase.com\/documentation\/server\/current\/fts\/full-text-intro.html\">documentaci\u00f3n de referencia<\/a> para comprender mejor lo que puede hacer por usted.<\/p>\n<p>Si todav\u00eda est\u00e1s aqu\u00ed, o quiz\u00e1s ya has vuelto, aqu\u00ed tienes las novedades de FTS en esta versi\u00f3n para desarrolladores de Couchbase.<\/p>\n<h2>Mapa de tipos<\/h2>\n<p>En el pasado s\u00f3lo hab\u00eda una forma de declarar un mapeo de tipos y era dici\u00e9ndole a FTS qu\u00e9 campo (por defecto el campo \"tipo\") quer\u00eda utilizar para distinguir los tipos de documentos. Aunque utilizar un campo com\u00fan como selector de tipo para todos sus documentos es \u00fatil y una pr\u00e1ctica habitual, no es la \u00fanica. Por eso hemos a\u00f1adido otra forma de distinguir tipos entre documentos.<\/p>\n<ul>\n<li>DOC ID hasta el separador: El identificador de tipo es el prefijo de la clave del documento, hasta el car\u00e1cter dado, pero sin incluirlo.<\/li>\n<li>DOC ID con regex: Para usuarios avanzados, puede especificar una expresi\u00f3n regular que coincida con el identificador de tipo.<\/li>\n<\/ul>\n<p>\u00bfC\u00f3mo se traduce esto en nuestra muestra de viaje? Todos los documentos clave siguen el mismo patr\u00f3n. He aqu\u00ed algunos ejemplos:<\/p>\n<p>airline_10, airline_10748, hotel_6445, hotel_9905, landmark_10019, landmark_9838, route_10009, route_14273, route_9807<\/p>\n<p>Como puedes ver todos empiezan con un tipo, luego un gui\u00f3n bajo, luego un n\u00famero. Si usamos el gui\u00f3n bajo como separador, todos empiezan con su tipo como String, que el gui\u00f3n bajo y el n\u00famero. As\u00ed que podemos utilizar la opci\u00f3n DOC ID hasta el separador poniendo la opci\u00f3n a '_'. Esto equivaldr\u00e1 a decir que el campo que contiene el tipo del documento es 'type'. Que es exactamente lo que solemos hacer.<\/p>\n<p>Ahora podemos identificar otro patr\u00f3n aqu\u00ed. Todos los identificadores DOC empiezan por min\u00fasculas hasta el gui\u00f3n bajo. Su longitud oscila entre 5 y 8 caracteres. Despu\u00e9s tenemos n\u00fameros. Podemos traducir esta observaci\u00f3n en la siguiente expresi\u00f3n regular: <code>^[a-z]{5,8}<\/code><\/p>\n<p>Esta expresi\u00f3n coincidir\u00e1 con el principio de la cadena(gracias a ^) todos los caracteres entre 'a' y 'z'(gracias a [a-z]) con una longitud que va de 5 a 8(gracias a {5,8}).<br \/>\nPor lo tanto, puede utilizar la opci\u00f3n DOC ID with regex configurando la opci\u00f3n como <code>^[a-z]{5,8}<\/code>. Las remezclas son a veces complicadas, pero le permitir\u00e1n realizar filtrados m\u00e1s avanzados.<\/p>\n<h2>Ordenar<\/h2>\n<p>Otra de las novedades de esta versi\u00f3n es la ordenaci\u00f3n. Y vas a decir que ordenar ya estaba disponible en la anterior. Y tendr\u00edas raz\u00f3n. Cada documento que coincide con la b\u00fasqueda tiene una puntuaci\u00f3n de relevancia y los resultados siempre se ordenan por puntuaci\u00f3n descendente. Sin embargo, ahora puede especificar su propio orden de clasificaci\u00f3n. Hemos a\u00f1adido un campo de ordenaci\u00f3n para la consulta FTS que funciona de la siguiente manera:<\/p>\n<p><code>\"sort\" : [ \"country\", \"state\", \"city\", \"-score\" ]<\/code><\/p>\n<p>Aqu\u00ed los resultados se ordenar\u00e1n primero por pa\u00eds, luego por estado y ciudad si el pa\u00eds, el estado y la ciudad son similares. Luego, si todos son iguales, se ordenan por puntuaci\u00f3n de forma descendente. Anteponga el car\u00e1cter '-' a cualquier campo de ordenaci\u00f3n para que la ordenaci\u00f3n sea descendente. Tambi\u00e9n debe asegurarse de que todos los campos de la matriz de ordenaci\u00f3n se almacenan en el \u00edndice. As\u00ed es como se ve en una consulta FTS completa:<\/p>\n<p><code>{ \"explain\": false, \"fields\": [ \"title\" ], \"highlight\": {}, \"sort\": [\"country\", \"state\", \"city\", \"-score\", \"-_id\"], \"query\":{ \"consulta\": \"hermosa piscina\" } }<\/code><\/p>\n<p>Si est\u00e1 utilizando Java, digamos que el archivo <a href=\"https:\/\/github.com\/couchbaselabs\/try-cb-java\/\">travel-sample app<\/a> por ejemplo, es f\u00e1cil a\u00f1adir un Sort personalizado. Simplemente abra el servicio Hotel y vaya al m\u00e9todo findHotels. Deber\u00eda verse as\u00ed:<\/p>\n<pre><code>    ConjunctionQuery fts = SearchQuery.conjuncts(SearchQuery.term(\"hotel\").field(\"type\"));\r\n\r\n    if (location != null &amp;&amp; !location.isEmpty() &amp;&amp; !\"*\".equals(location)) {\r\n        fts.and(SearchQuery.disjuncts(\r\n                    SearchQuery.matchPhrase(location).field(\"country\"),\r\n                    SearchQuery.matchPhrase(location).field(\"city\"),\r\n                    SearchQuery.matchPhrase(location).field(\"state\"),\r\n                    SearchQuery.matchPhrase(location).field(\"address\")\r\n            ));\r\n    }\r\n\r\n    if (description != null &amp;&amp; !description.isEmpty() &amp;&amp; !\"*\".equals(description)) {\r\n        fts.and(\r\n            SearchQuery.disjuncts(\r\n                    SearchQuery.matchPhrase(description).field(\"description\"),\r\n                    SearchQuery.matchPhrase(description).field(\"name\")\r\n            ));\r\n    }\r\n\r\n    SearchQuery query = new SearchQuery(\"hotels\", fts)\r\n            .limit(100);\r\n\r\n    logQuery(query.export().toString());\r\n    SearchQueryResult result = bucket.query(query);\r\n<\/code><\/pre>\n<p>La consulta a ejecutar es b\u00e1sicamente esta l\u00ednea de c\u00f3digo: <code>SearchQuery query = new SearchQuery(\"hoteles\", fts).limit(100);<\/code><br \/>\nY todo lo que tienes que hacer es a\u00f1adir una llamada al m\u00e9todo de ordenaci\u00f3n: <code>SearchQuery query = new SearchQuery(\"hoteles\", fts).limit(100).sort(\"pa\u00eds\", \"estado\", \"ciudad\", \"-puntuaci\u00f3n\")<\/code><\/p>\n<p>Tambi\u00e9n hay disponibles opciones m\u00e1s avanzadas.<\/p>\n<h2>Backend<\/h2>\n<p>Algo que ha cambiado pero que no ser\u00e1 visible para el usuario final es que hemos cambiado el backend de los \u00edndices FTS. Pasamos de usar ForestDB a usar <a href=\"https:\/\/github.com\/couchbase\/moss\">Musgo<\/a>. moss es una librer\u00eda de almacenamiento de claves-valores simple, r\u00e1pida, ordenada y persistente para golang. sus siglas significan \"segmentos ordenados orientados a memoria\". Aqu\u00ed est\u00e1 la lista de caracter\u00edsticas tomadas del README:<\/p>\n<ul>\n<li>API de recopilaci\u00f3n de valores clave ordenados<\/li>\n<li>100% ir a la aplicaci\u00f3n<\/li>\n<li>iteradores de rango de teclas<\/li>\n<li>las instant\u00e1neas permiten lecturas aisladas<\/li>\n<li>mutaciones at\u00f3micas a trav\u00e9s de una API por lotes<\/li>\n<li>las operaciones de fusi\u00f3n permiten optimizar la lectura, el c\u00e1lculo y la escritura en los casos de uso con mucha escritura (por ejemplo, la actualizaci\u00f3n de contadores)<\/li>\n<li>los lectores y escritores concurrentes no se bloquean mutuamente<\/li>\n<li>opcionales, API avanzadas para evitar la copia de memoria adicional<\/li>\n<li>implementaci\u00f3n opcional de almacenamiento de nivel inferior, denominada \"mossStore\", que utiliza un dise\u00f1o de s\u00f3lo anexi\u00f3n para las escrituras y mmap() para las lecturas, con una pol\u00edtica de compactaci\u00f3n configurable; v\u00e9ase: OpenStoreCollection()<\/li>\n<li>mossStore permite navegar hacia atr\u00e1s a trav\u00e9s de puntos de confirmaci\u00f3n anteriores en modo de s\u00f3lo lectura, y permite revertir a puntos de confirmaci\u00f3n anteriores.<\/li>\n<li>ganchos de persistencia opcionales para permitir el almacenamiento en cach\u00e9 con escritura posterior a una implementaci\u00f3n de almacenamiento de nivel inferior que los usuarios avanzados puedan desear proporcionar (por ejemplo, puede conectar moss a leveldb, sqlite, etc.)<\/li>\n<li>las retrollamadas de eventos permiten supervisar las tareas as\u00edncronas<\/li>\n<li>pruebas unitarias<\/li>\n<li>pruebas fuzz mediante go-fuzz y smat (<a href=\"https:\/\/github.com\/mschoch\/smat\">github.com\/mschoch\/smat<\/a>); v\u00e9ase <a href=\"https:\/\/README-smat.md\">L\u00c9AME-smat.md<\/a><\/li>\n<\/ul>\n<p>No voy a entrar en detalles ya que esto es bastante bajo nivel. Sin embargo, nos gustar\u00eda saber si buscas m\u00e1s informaci\u00f3n sobre arquitectura de bajo nivel como esta. \u00bfTe gustar\u00eda ver una presentaci\u00f3n m\u00e1s detallada de moss o de cualquier otro componente de Couchbase Server? Si es as\u00ed, por favor h\u00e1znoslo saber en twitter o en los comentarios de abajo.<\/p>","protected":false},"excerpt":{"rendered":"<p>Couchbase FTS is our new Fulltext Index and Query engine. We previously introduced it last year, I invite you to read this post and the reference documentation for a better understanding of what it can do for you. If you [&hellip;]<\/p>","protected":false},"author":49,"featured_media":13873,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"inline_featured_image":false,"footnotes":""},"categories":[1816,2165],"tags":[],"ppma_author":[9023],"class_list":["post-2506","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-couchbase-server","category-full-text-search"],"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>Couchbase Developer Release - What\u2019s new for FTS?<\/title>\n<meta name=\"description\" content=\"Learn more about what is new for FTS in this Couchbase 4.5 Developer Preview Release. Check the new features include Type Mapping, Sort, and Backend.\" \/>\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\/couchbase-developer-release-new-fts\/\" \/>\n<meta property=\"og:locale\" content=\"es_MX\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Couchbase Developer Release - What\u2019s new for FTS?\" \/>\n<meta property=\"og:description\" content=\"Learn more about what is new for FTS in this Couchbase 4.5 Developer Preview Release. Check the new features include Type Mapping, Sort, and Backend.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.couchbase.com\/blog\/es\/couchbase-developer-release-new-fts\/\" \/>\n<meta property=\"og:site_name\" content=\"The Couchbase Blog\" \/>\n<meta property=\"article:published_time\" content=\"2017-01-20T13:04:50+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-06-14T03:59:35+00:00\" \/>\n<meta name=\"author\" content=\"Laurent Doguin\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@ldoguin\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"unstructured.io\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"5 minutos\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/couchbase-developer-release-new-fts\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/couchbase-developer-release-new-fts\/\"},\"author\":{\"name\":\"Laurent Doguin\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/c0aa9b8f1ed51b7a9e2f7cb755994a5e\"},\"headline\":\"Couchbase Developer Release &#8211; What\u2019s new for FTS?\",\"datePublished\":\"2017-01-20T13:04:50+00:00\",\"dateModified\":\"2025-06-14T03:59:35+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/couchbase-developer-release-new-fts\/\"},\"wordCount\":861,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/couchbase-developer-release-new-fts\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png\",\"articleSection\":[\"Couchbase Server\",\"Full-Text Search\"],\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.couchbase.com\/blog\/couchbase-developer-release-new-fts\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/couchbase-developer-release-new-fts\/\",\"url\":\"https:\/\/www.couchbase.com\/blog\/couchbase-developer-release-new-fts\/\",\"name\":\"Couchbase Developer Release - What\u2019s new for FTS?\",\"isPartOf\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/couchbase-developer-release-new-fts\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/couchbase-developer-release-new-fts\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png\",\"datePublished\":\"2017-01-20T13:04:50+00:00\",\"dateModified\":\"2025-06-14T03:59:35+00:00\",\"description\":\"Learn more about what is new for FTS in this Couchbase 4.5 Developer Preview Release. Check the new features include Type Mapping, Sort, and Backend.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/couchbase-developer-release-new-fts\/#breadcrumb\"},\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.couchbase.com\/blog\/couchbase-developer-release-new-fts\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/couchbase-developer-release-new-fts\/#primaryimage\",\"url\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png\",\"contentUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png\",\"width\":1800,\"height\":630},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/couchbase-developer-release-new-fts\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.couchbase.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Couchbase Developer Release &#8211; What\u2019s new for FTS?\"}]},{\"@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\/c0aa9b8f1ed51b7a9e2f7cb755994a5e\",\"name\":\"Laurent Doguin\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/image\/12929ce99397769f362b7a90d6b85071\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/b8c466908092b46634af916b6921f30187a051e4367ded7ac9b1a3f2c5692fd2?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/b8c466908092b46634af916b6921f30187a051e4367ded7ac9b1a3f2c5692fd2?s=96&d=mm&r=g\",\"caption\":\"Laurent Doguin\"},\"description\":\"Laurent is a nerdy metal head who lives in Paris. He mostly writes code in Java and structured text in AsciiDoc, and often talks about data, reactive programming and other buzzwordy stuff. He is also a former Developer Advocate for Clever Cloud and Nuxeo where he devoted his time and expertise to helping those communities grow bigger and stronger. He now runs Developer Relations at Couchbase.\",\"sameAs\":[\"https:\/\/x.com\/ldoguin\"],\"honorificPrefix\":\"Mr\",\"birthDate\":\"1985-06-07\",\"gender\":\"male\",\"award\":[\"Devoxx Champion\",\"Couchbase Legend\"],\"knowsAbout\":[\"Java\"],\"knowsLanguage\":[\"English\",\"French\"],\"jobTitle\":\"Director Developer Relation & Strategy\",\"worksFor\":\"Couchbase\",\"url\":\"https:\/\/www.couchbase.com\/blog\/es\/author\/laurent-doguin\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Couchbase Developer Release - What\u2019s new for FTS?","description":"Obtenga m\u00e1s informaci\u00f3n sobre las novedades de FTS en esta versi\u00f3n preliminar para desarrolladores de Couchbase 4.5. Consulte las nuevas funciones, entre las que se incluyen la asignaci\u00f3n de tipos, la clasificaci\u00f3n y el backend.","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\/couchbase-developer-release-new-fts\/","og_locale":"es_MX","og_type":"article","og_title":"Couchbase Developer Release - What\u2019s new for FTS?","og_description":"Learn more about what is new for FTS in this Couchbase 4.5 Developer Preview Release. Check the new features include Type Mapping, Sort, and Backend.","og_url":"https:\/\/www.couchbase.com\/blog\/es\/couchbase-developer-release-new-fts\/","og_site_name":"The Couchbase Blog","article_published_time":"2017-01-20T13:04:50+00:00","article_modified_time":"2025-06-14T03:59:35+00:00","author":"Laurent Doguin","twitter_card":"summary_large_image","twitter_creator":"@ldoguin","twitter_misc":{"Written by":"unstructured.io","Est. reading time":"5 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.couchbase.com\/blog\/couchbase-developer-release-new-fts\/#article","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/couchbase-developer-release-new-fts\/"},"author":{"name":"Laurent Doguin","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/c0aa9b8f1ed51b7a9e2f7cb755994a5e"},"headline":"Couchbase Developer Release &#8211; What\u2019s new for FTS?","datePublished":"2017-01-20T13:04:50+00:00","dateModified":"2025-06-14T03:59:35+00:00","mainEntityOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/couchbase-developer-release-new-fts\/"},"wordCount":861,"commentCount":0,"publisher":{"@id":"https:\/\/www.couchbase.com\/blog\/#organization"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/couchbase-developer-release-new-fts\/#primaryimage"},"thumbnailUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png","articleSection":["Couchbase Server","Full-Text Search"],"inLanguage":"es","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.couchbase.com\/blog\/couchbase-developer-release-new-fts\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.couchbase.com\/blog\/couchbase-developer-release-new-fts\/","url":"https:\/\/www.couchbase.com\/blog\/couchbase-developer-release-new-fts\/","name":"Couchbase Developer Release - What\u2019s new for FTS?","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/couchbase-developer-release-new-fts\/#primaryimage"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/couchbase-developer-release-new-fts\/#primaryimage"},"thumbnailUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png","datePublished":"2017-01-20T13:04:50+00:00","dateModified":"2025-06-14T03:59:35+00:00","description":"Obtenga m\u00e1s informaci\u00f3n sobre las novedades de FTS en esta versi\u00f3n preliminar para desarrolladores de Couchbase 4.5. Consulte las nuevas funciones, entre las que se incluyen la asignaci\u00f3n de tipos, la clasificaci\u00f3n y el backend.","breadcrumb":{"@id":"https:\/\/www.couchbase.com\/blog\/couchbase-developer-release-new-fts\/#breadcrumb"},"inLanguage":"es","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.couchbase.com\/blog\/couchbase-developer-release-new-fts\/"]}]},{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/www.couchbase.com\/blog\/couchbase-developer-release-new-fts\/#primaryimage","url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png","contentUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png","width":1800,"height":630},{"@type":"BreadcrumbList","@id":"https:\/\/www.couchbase.com\/blog\/couchbase-developer-release-new-fts\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.couchbase.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Couchbase Developer Release &#8211; What\u2019s new for FTS?"}]},{"@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\/c0aa9b8f1ed51b7a9e2f7cb755994a5e","name":"Laurent Doguin","image":{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/image\/12929ce99397769f362b7a90d6b85071","url":"https:\/\/secure.gravatar.com\/avatar\/b8c466908092b46634af916b6921f30187a051e4367ded7ac9b1a3f2c5692fd2?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/b8c466908092b46634af916b6921f30187a051e4367ded7ac9b1a3f2c5692fd2?s=96&d=mm&r=g","caption":"Laurent Doguin"},"description":"Laurent es un metalero empoll\u00f3n que vive en Par\u00eds. Principalmente escribe c\u00f3digo en Java y texto estructurado en AsciiDoc, y a menudo habla sobre datos, programaci\u00f3n reactiva y otras cosas de moda. Tambi\u00e9n fue Developer Advocate de Clever Cloud y Nuxeo, donde dedic\u00f3 su tiempo y experiencia a ayudar a esas comunidades a crecer y fortalecerse. Ahora dirige las relaciones con los desarrolladores en Couchbase.","sameAs":["https:\/\/x.com\/ldoguin"],"honorificPrefix":"Mr","birthDate":"1985-06-07","gender":"male","award":["Devoxx Champion","Couchbase Legend"],"knowsAbout":["Java"],"knowsLanguage":["English","French"],"jobTitle":"Director Developer Relation & Strategy","worksFor":"Couchbase","url":"https:\/\/www.couchbase.com\/blog\/es\/author\/laurent-doguin\/"}]}},"authors":[{"term_id":9023,"user_id":49,"is_guest":0,"slug":"laurent-doguin","display_name":"Laurent Doguin","avatar_url":"https:\/\/secure.gravatar.com\/avatar\/b8c466908092b46634af916b6921f30187a051e4367ded7ac9b1a3f2c5692fd2?s=96&d=mm&r=g","author_category":"","last_name":"Doguin","first_name":"Laurent","job_title":"","user_url":"","description":"Laurent es un metalero empoll\u00f3n que vive en Par\u00eds. Principalmente escribe c\u00f3digo en Java y texto estructurado en AsciiDoc, y a menudo habla sobre datos, programaci\u00f3n reactiva y otras cosas de moda. Tambi\u00e9n fue Developer Advocate de Clever Cloud y Nuxeo, donde dedic\u00f3 su tiempo y experiencia a ayudar a esas comunidades a crecer y fortalecerse. Ahora dirige las relaciones con los desarrolladores en Couchbase."}],"_links":{"self":[{"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/posts\/2506","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\/49"}],"replies":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/comments?post=2506"}],"version-history":[{"count":0,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/posts\/2506\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/media\/13873"}],"wp:attachment":[{"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/media?parent=2506"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/categories?post=2506"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/tags?post=2506"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/ppma_author?post=2506"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}