Indexación y búsqueda

El sistema de almacenamiento Rapido (souper) soporta la indexación.

Cualquier elemento de bloque se puede indexar agregando una configuración index_type en su definición YAML.

El ajuste index_type puede tener dos valores posibles:

  • field: estos índices coinciden con los valores exactos y admiten consultas de comparación, consultas de rangos y clasificación.
  • text: dicho índice corresponde a palabras contenidas (aplicable sólo a valores de texto).

Las consultas utilizan el formato (CQE format).

Ejemplo (asumiendo que el author, title y price son índices existentes):

context.app.search(
    "author == 'Conrad' and 'Lord Jim' in title",
    sort_index="price")

Los registros se indexan en el momento en que se guardan. Podemos forzar la reindexión mediante la API de Python:

myrecord.reindex()

También podemos reindexar todos los registros usando el comando URL refresh:

http://localhost:8080/Plone/@@rapido/<app-id>/refresh?_authenticator=<valid token>

o usando la API REST (ver API REST).