Indexing and searchingΒΆ

The Rapido storage system (souper) supports indexing.

Any block element can be indexed by adding a index_type setting in its YAML definition.

The index_type setting can have two possible values:

  • field: such indexes match exact values, and support comparison queries, range queries, and sorting.
  • text: such index matches contained words (applicable for text values only).

Queries use the (CQE format.

Example (assuming author, title and price are existing indexes):

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

Records are indexed at the time they are saved. We can force reindexing using the Python API:

myrecord.reindex()

We can also reindex all the records using the refresh URL command:

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

or using the REST API (see REST API).