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