===============
Index structure
===============

Indexes are an automatic method to hierarchically organize documents in
relation to their properties (:ref:`metadata<apps-metadata>`, label, MIME
type, etc). To use indexes you need to first create an index template.
Once created, associate the index to one or more
:ref:`document type<apps-documents>`.

Index are hierarchical models so a tree template needs to be specified for them.
This tree template will contain references to document metadata or properties
that will be replaced with the actual value for those metadata or properties.

Example:

- Document type: ``Product sheet``
- Metadata type: ``Product year``, associated as a required metadata for the document type ``Product sheet``.

- Index: ``Product sheets per year``, and associated to the document type ``Product sheet``.
- Index slug: ``product-sheets-per-year``. Slugs are internal unique identifiers that can be used by other Mayan EDMS modules to reference each index.
- Index tree template as follows:

Now every time a new ``Product sheet`` is uploaded a hierarchical unit with the value
of the metadata type ``Product year`` is created and a link to the uploaded ``Product sheet`` added to it.
