Las aplicaciones obtienen datos de Couchbase Server de diferentes maneras: pueden utilizar operaciones clave-valor básicas, índices secundarios (vistas) o la búsqueda de texto completo. Como desarrollador, ¿cómo decides si deberías usar índices secundarios o búsqueda de texto completo para la nueva funcionalidad de tu app? Este blog explica las diferencias entre índices secundarios e índices de texto completo para que sepas qué deberías usar para acceder a los datos en Couchbase en función del escenario que tengas entre manos.
Las vistas en el servidor couchbase se definen en javascript utilizando un mapa que extrae datos de sus documentos y una función opcional reducir que agrega los datos emitidos por la función map. En la función map, se puede especificar sobre qué atributos construir el índice. Al final, las vistas se indexan y las consultas son coherentes con respecto a los documentos almacenados.
Visualmente, así es como se ve una estructura de datos para un índice secundario -

El uso de una estructura de datos de árbol B para los índices secundarios optimiza las búsquedas rápidas basadas en claves (en este caso, "Nombre del artículo") y las consultas de rango. Por ejemplo, imagina que estás creando una aplicación de catálogo de productos y quieres listar todos los nombres de productos que empiezan por 'A' hasta 'F'. Usando un índice secundario en Couchbase sobre "nombre de artículo", sólo se necesitaría acceder a partes de los nodos de datos del árbol B.
Entonces, ¿por qué utilizar la capacidad de búsqueda de texto completo de Couchbase?
Imagine que desea listar todos los productos de su tienda que tengan la palabra clave 'rojo' - esto incluye artículos como 'jerseys rojos', 'pantalones rojos' o incluso artículos con el atributo de color 'rojo'. A índice de texto completo asigna términos de documentos a la lista de ID de documentos, lo que permite obtener rápidamente la lista de ID de documentos que contienen un término determinado.
El servidor Couchbase se integra con Elasticsearch, un motor de búsqueda de texto completo. Usando el adaptador de Couchbase para Elasticsearch, los documentos se replican en tiempo real a Elasticsearch. Elasticsearch analiza cada documento y construye un índice de texto completo para que puedas buscar en todos tus documentos desde tu aplicación.

La figura anterior muestra cómo un índice de texto completo asocia los términos encontrados en los documentos a identificadores de documento. Esta estructura de datos es elegante para realizar búsquedas ad hoc: por ejemplo, si busca "jerséis", obtendrá los identificadores de documento correspondientes a los jerséis rojos y azules.
Ahora que ya sabes qué son los índices secundarios y los índices de texto completo, vamos a ver cuándo deberías utilizar la búsqueda de texto completo y cuándo deberías plantearte utilizar un índice secundario en tu aplicación.
Debe utilizar búsqueda de texto completo cuando :
– Si desea buscar en grandes cantidades de datos textuales, como contenido de páginas web, entradas de blog, artículos digitales y metadatos de contenido. Los índices de búsqueda de texto completo le permitirán buscar en todo el conjunto de datos, en cualquier atributo, además de clasificar los resultados por relevancia.
- su aplicación necesita una búsqueda basada en términos.
Debe utilizar secundario busque en cuando :
Este ha sido un gran resumen sobre cómo elegir los métodos de búsqueda. Gracias.
Me gustaría añadir que otra diferenciación clave es:
- Los resultados de la búsqueda de texto completo suelen estar destinados al consumo humano.
- Los resultados del Índice secundario están destinados al consumo de máquinas/programas.