Especificación y creación de índices ES para servicios

Como se especificó en https://ecoinformatica.atlassian.net/wiki/spaces/CONADATA/pages/707264524, los servicios de datos en GraphQL tendrán asociado un índice en ElasticSearch el cual será el responsable de modelar el tipo de búsquedas de información que se pueden contestar con la información registrada en los servicios de datos.

La creación de dichos índices y su mantenimiento se propone que se haga de manera separada del desarrollo de los sistemas de servicios. Al hacer esto se propicia que el modelamiento de estos pueda ser actualizado con una mayor frecuencia para responder más rápido a nuevos requerimientos. Pero al hacer esto se deberán de observar ciertos requerimientos.

Especificación de índices ES

Todo los índices creados en ES para un servicio de datos deben de observar lo siguiente.

  • El campo _id del índice debe coincidir con el id del servicio de datos relacionado.

  • Cada uno de los campos que formen parte del índice debe tener asociada documentación de a qué información se refiere, esto se debe de incluir en la metainfomación del campo (ver https://www.elastic.co/guide/en/elasticsearch/reference/current/mapping-field-meta.html) con la llave helpdoc, también es importante considerar que esta información debe tener una longitud máxima de 50 caracteres.

Consideraciones para la creación de un índice

Si bien ElasticSearch permite la creación de índices y campos de manera dinámica conforme se va registrando información en el mismo se recomienda que los índices se creen haciendo el mapeo explicito para tener control en como se guardará la información y como será normalizada y analizada, esto es muy importante para las búquedas en español.