El Servicio de Búsqueda de Texto Completo ahora ofrece mejor rendimiento de búsqueda y utilización de recursos en todo su clúster con la introducción de Ámbitos y Colecciones en Couchbase 7.0.
Demos un paso atrás rápidamente: El Lanzamiento 7.0 de Couchbase Server introduce el concepto de Ámbitos y Colecciones que le permiten organizar datos en espacios de nombres dentro de un Couchbase Bucket. En lugar de todo JSON documentos que tienen que residir en un solo espacio de nombres compartido, Scopes and Collections le brindan una capacidad integrada para agrupar documentos en lugar de tener que agregar atributos manuales como tipo a un documento.
Exploremos cómo puede indexar y buscar los datos en sus Scopes y Collections utilizando el Servicio de Búsqueda en Couchbase.
Cómo indexar datos para búsqueda dentro de una sola colección
El Servicio de Búsqueda de Texto Completo (FTS) de Couchbase funciona exactamente igual que antes en lo que respecta a la operación y definición de nuevos índices en documentos que residen dentro de un Bucket. Con Scopes y Collections, todos los documentos existentes (anteriores a la versión 7.0) en un Bucket se clasifican en el _default Alcance y _default Colección. Y los índices existentes continúan indexando las mutaciones más recientes y todas las consultas funcionan como de costumbre.
Una vez que su equipo adopte los ámbitos y colecciones, los usuarios de la base de datos comenzarán a agrupar documentos de esquemas múltiples en varias colecciones. Aquí es donde la Búsqueda de Texto Completo de Couchbase cambia con la versión 7.0.
El servicio de búsqueda es compatible con creaciones de índices en una Colección de origen único, así como en múltiples Colecciones de origen, siempre que todas las Colecciones pertenezcan a un soltero Alcance.
Esencialmente, el Los índices de búsqueda pueden abarcar varias Colecciones, pero no varios Ámbitos.
Búsqueda de texto completo con un CRM
Profundicemos en más detalles con la ayuda de un ejemplo.
Considere un caso de uso de CRM en el que los detalles de sus clientes se capturan en un Clientes Carrito y los detalles de tu pedido en un Órdenes Balde.
Supongamos que ha organizado a varios clientes en diferentes Ámbito según las regiones geográficas. Por ejemplo, asignando todos los clientes de la región de Asia-Pacífico a un Ámbito específico llamado apac y así sucesivamente.
El diagrama siguiente ilustra cómo podría organizar sus depósitos, ámbitos y colecciones para su CRM.

Con Collections, indexar y buscar datos de una Collection de origen único es el caso de uso más común y natural. Funciona de manera similar al proceso existente de creación de índices basado en Buckets. La única diferencia es que el usuario debe especificar los detalles del Scope y de la Collection al crear la definición del índice.
Si estás indexando el Scope y la Collection predeterminados dentro de un Bucket, entonces el pasos para la creación de índices se ven exactamente igual que en los días previos a la colección.
Si desea indexar un ámbito (Scope) y/o colección(es) que no sean predeterminados, debe marcar la casilla “Use non-default Scope/Collection(s)” en la interfaz web de Couchbase. Una vez que complete este paso, el proceso de creación de índices le pedirá que ingrese los detalles del ámbito y la colección de origen, como se muestra en el siguiente diagrama.

Una vez que active la casilla de verificación de Ámbito/Colección(es) no predeterminados, podrá elegir el Ámbito de origen para los documentos (consulte a continuación). Podrá notar que el menú desplegable de Ámbito ahora muestra todos los Ámbitos disponibles dentro del Cubo que eligió (el CRM, en nuestro ejemplo).

Como se muestra en la captura de pantalla anterior, puede seleccionar el ámbito al que pertenece la Colección en la lista desplegable como se muestra arriba.
Especificación de mapeos de tipos
Una vez que seleccione el Alcance, estará listo para especificar el tipo de documentos que desea indexar.
La convención es especificar el tipo de documentos sobre los mapeos de tipos, y este mismo patrón de definición de mapeo de tipos continúa aquí también. Al agregar un nuevo mapeo de tipos, se le da al usuario la opción de especificar la colección de origen como se muestra a continuación.

El usuario debería poder ver todas las Colecciones disponibles en el Ámbito antes mencionado (por ejemplo, EMEA) como una lista desplegable como la anterior.
Indexación de todos los tipos de documentos dentro de una colección dada
Puedes indexar cada tipo de documento en una Colección seleccionando el nombre de la Colección en la lista desplegable para el nombre de asignación de tipos. Consulte la imagen a continuación para ver un ejemplo.

Indexación de múltiples tipos de documentos dentro de una colección
Si la colección aloja varios tipos de documentos, entonces puede especificar cualquier cantidad de nombres de mapeo de tipos de interés seguidos del nombre de la colección, como se muestra a continuación.

El ejemplo anterior indexaría tipos de documentos como órdenesDepto y órdenes de inventario de la colección cliente1 bajo el alcance EMEA.
Notas de escalamiento
Dado que los datos de su Bucket ahora están divididos en una mayor granularidad a partir de Scopes y Collections, es más probable que los documentos dentro de cada una de sus Collections tengan una cardinalidad menor.
Dependiendo de los detalles de sus colecciones, es posible que no necesito usar la configuración de partición predeterminada de 6 per index to power a smaller dataset.
El uso de la cantidad adecuada de particiones para una cantidad determinada de datos ayuda a respaldar:
- Mejor utilización de los recursos en un nodo
- Un mayor número de índices en un nodo determinado
- Mejor rendimiento de búsqueda
Como resultado, le recomendamos explorar la posibilidad de anular el recuento de particiones predeterminado a un bajar valor durante el dimensionamiento del clúster.
Notas de RBAC
Ahora puedes administrar control de acceso basado en roles (RBAC) para índices de búsqueda de texto completo a nivel de Bucket, Scope (Ámbito) o Collection(s) (Colección o Colecciones).
Un usuario con al menos lector de búsqueda los permisos a nivel de la Colección de origen podrán acceder al índice de búsqueda de texto completo.
Cómo indexar datos para búsquedas en múltiples colecciones
Los índices de múltiples colecciones ayudan a sus usuarios a indexar y buscar en múltiples colecciones dentro de un solo ámbito (Scope), todo desde un solo índice. Algunos casos de uso favorables para múltiples colecciones incluyen:
- Los usuarios han fragmentado los datos en muchas Colecciones, donde cada Colección o espacio de nombres puede ser una cuenta de cliente o la marca de un producto, etc. (es decir, datos homogéneos en todas las Colecciones).
- Los usuarios tienen una gran cantidad de colecciones de tamaño relativamente pequeño en su conjunto de datos debido a la partición lógica de los datos (es decir, datos heterogéneos en las colecciones).
En todos estos casos, es posible que deba crear numerosos índices para habilitar la búsqueda de texto completo en datos de múltiples colecciones. Sin embargo, es una tarea engorrosa tener que crear —y mantener— un número tan grande de índices.
Ahí es donde entran en juego los índices multi-colección.
Los índices de múltiples colecciones alivian la sobrecarga al permitirle simplemente crear un índice general que cubra muchas colecciones. Estas colecciones pueden contener datos homogéneos o datos heterogéneos.
Especificación de mapeos de tipos
En la captura de pantalla a continuación, puede ver la definición de los mapeos de tipos para indexar tipos de datos heterogéneos de diferentes Colecciones como cliente1, cliente2 y cliente3. También puedes usar tipos de datos similares de varias colecciones como customer1.travels y customer3.travels y similares.

Notas del ciclo de vida
Si alguna de las colecciones de origen se elimina en un índice de múltiples colecciones, ¡el índice también se elimina!.
Por lo tanto, los índices multi-Collection son más adecuados para Colecciones con ciclos de vida similares.
Notas de RBAC
Bajo la seguridad RBAC de Couchbase, debe tener lector de búsqueda permisos para todas las colecciones de origen para acceder a un índice de múltiples colecciones.
Cómo buscar los datos en una colección usando búsqueda de texto completo
Índice de colección única: Puedes buscar y recuperar datos de un índice de una sola colección de la misma manera que lo hacías antes con un índice basado en cubetas.
Índice de múltiples colecciones: Puedes buscar en índices de múltiples colecciones usando las mismas solicitudes de búsqueda de siempre. Dado que un índice de múltiples colecciones contiene datos de varias colecciones de origen, es útil conocer la colección de origen de sus resultados relevantes.
Con los índices de múltiples colecciones, cada resultado en los resultados de búsqueda contiene información sobre la colección a la que pertenece. Este detalle de la colección de origen está disponible en la Campos sección de cada coincidencia bajo la clave _$c. Vea la imagen a continuación para ver un ejemplo.

También puede limitar sus solicitudes de búsqueda de texto completo a colecciones específicas dentro del índice de múltiples colecciones. Este enfoque acelera sus búsquedas en un índice grande.
A continuación, se muestra una solicitud de búsqueda de Colección de muestra para Colecciones cliente1 y cliente3.
|
1 2 3 4 5 6 7 8 9 |
{ “consulta”: { “match_phrase”: “excediendo el presupuesto” }, “colecciones”: [ “cliente1”, “customer3” ] } |
Notas de actualización
Solo puedes aprovechar el soporte de Colección(es) para el Servicio de Búsqueda de Texto Completo en un clúster de Couchbase 7.0 completamente actualizado.
No se puede habilitar el soporte de Colecciones para FTS en un clúster de versiones mixtas.
Conclusión
Espero que disfrutes usando el servicio de búsqueda de texto completo de Couchbase con las nuevas funciones de ámbitos y colecciones introducidas en la versión 7.0.
Si desea obtener más información sobre Couchbase Server 7, consulta las Novedades y/o las notas de la versión 7.0.
Prueba la búsqueda de texto completo:
Pruebe Couchbase 7

Deja un comentario
Lo siento, debes estar conectado para publicar un comentario.