Índices Personalizados
A veces necesitamos definir índices personalizados para acelerar las consultas a nuestros campos personalizados y/o código de plugin.
Clarive habilita esto permitiendo a los desarrolladores de plugins crear un archivo de índice especial bajo la estructura de carpetas del plugin (o feature).
Pasos para crear un archivo de índice¶
-
Si aún no tiene uno, cree un plugin o feature (ej.
myplugin) bajoCLARIVE_BASE/plugins/mypluginoCLARIVE_BASE/features/myfeature -
Cree el directorio
etc/index/donde residirán los índices bajo el plugin o feature, ieCLARIVE_BASE/plugins/myplugin/etc/index/ -
Cree un archivo de índice YAML. Un archivo es suficiente para todos sus índices. Por ejemplo
CLARIVE_BASE/plugins/myplugin/etc/index/indexes.yaml(lo mismo aplica al feature).
Contenido del archivo de índice¶
El archivo YAML de índice debe seguir una estructura con un hash/objeto donde cada clave es una colección donde residirán sus campos indexados:
collection_name: - [ { field1: 1, field2: 1 }, { ...Mongo index options...} ] # or - [ [ field1, 1, field2, 1 ], { ...Mongo index options...} ]
Aquí hay algunos ejemplos:
topic: - [ [ 'id_category', 1, 'title', 1 ] ] - [ [ 'myfield', 1, 'anotherfield', -1 ], { unique: 1 } ] master_doc: - [ [ 'myfield', 1, 'anotherfield', 1 ], { name: 'my index', background: 1 } ] mycoll: - [ { foo: 1 } ] # with just one field, use hashes
Al crear índices compuestos, la tupla field_name, 1 sigue un orden que
tiene que ver con la forma en que Mongo indexa archivos en la base de datos.
En el marcador de opciones, puede enviar a Mongo cualquier opción de índice permitida, tales como:
{ unique: 1 }- hacer el índice único, verificando ids únicos - ¡tenga cuidado!{ background: 1 }- crear el índice en segundo plano, sin interrumpir el uso normal de la DB{ name: "my index name" }- poner un nombre a su índice
Hay más opciones disponibles, lea la documentación de MongoDB para más información:
https://www.mongodb.com/docs/manual/indexes/