public interface Index<K,V>
Documents are inserted into the index and are queried by converting special
Predicate
instances into index-aware
predicates that use the index search results as a source.
Implementations must be thread-safe and should batch inserts/updates where appropriate.
Modifier and Type | Method and Description |
---|---|
void |
close()
Close this index.
|
void |
delete(K key)
Delete a document from the index by key.
|
void |
deleteAll()
Delete all documents from the index.
|
Schema<V> |
getSchema() |
DataSource<V> |
getSource(Predicate<V> p,
QueryOptions opts)
Convert the given operator predicate into a source searching the index and
returning only the documents matching that predicate.
|
void |
markReady(boolean ready)
Mark whether this index is up-to-date and ready to serve reads.
|
void |
replace(V obj)
Update a document in the index.
|
void close()
void replace(V obj) throws IOException
Semantically equivalent to deleting the document and reinserting it with new field values. A document that does not already exist is created. Results may not be immediately visible to searchers, but should be visible within a reasonable amount of time.
obj
- document objectIOException
void delete(K key) throws IOException
key
- document keyIOException
void deleteAll() throws IOException
IOException
DataSource<V> getSource(Predicate<V> p, QueryOptions opts) throws com.google.gerrit.server.query.QueryParseException
This method may be called multiple times for variations on the same predicate or multiple predicate subtrees in the course of processing a single query, so it should not have any side effects (e.g. starting a search in the background).
p
- the predicate to match. Must be a tree containing only AND, OR,
or NOT predicates as internal nodes, and IndexPredicate
s as
leaves.opts
- query options not implied by the predicate, such as start and
limit.com.google.gerrit.server.query.QueryParseException
- if the predicate could not be converted to an
indexed data source.void markReady(boolean ready) throws IOException
ready
- whether the index is readyIOException