Indices are a well known technique to speed up queries. They are a must-have feature for any serious DB solution, so Bagri does implement them in the following kinds:
- Unique indices: to guarantee uniqueness of documents by some field classifier, transactionally
- Non unique, case sensitive or not
- Range indices: for ordering comparisons like >, <, etc.
Index can be registered on any document field via standard XPath statements. And the XPath does not need to be already present in the system, you can register index on wildcard XPath, like
/site/*/symbol or, even more powerful
As opposite to some NoSQL solutions which use local index implementation, Bagri indices are global, which boost query performance on indexed fields a lot.
Compound and sparse (custom) indices and collation registration for string indices are on our short-term plan too.