public interface ChangeIndex
ChangeData
objects 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(com.google.gerrit.reviewdb.client.Change.Id id)
Delete a change document from the index by id.
|
void |
deleteAll()
Delete all change documents from the index.
|
Schema<ChangeData> |
getSchema() |
ChangeDataSource |
getSource(Predicate<ChangeData> p,
int start,
int limit)
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(ChangeData cd)
Update a change document in the index.
|
Schema<ChangeData> getSchema()
void close()
void replace(ChangeData cd) throws java.io.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.
cd
- change documentjava.io.IOException
void delete(com.google.gerrit.reviewdb.client.Change.Id id) throws java.io.IOException
id
- change idjava.io.IOException
void deleteAll() throws java.io.IOException
java.io.IOException
ChangeDataSource getSource(Predicate<ChangeData> p, int start, int limit) 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.start
- offset in results list at which to start returning results.limit
- maximum number of results to return.com.google.gerrit.server.query.QueryParseException
- if the predicate could not be converted to an
indexed data source.void markReady(boolean ready) throws java.io.IOException
ready
- whether the index is readyjava.io.IOException