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).