@NotThreadSafe public interface IndexCollector
IndexPlanner.applyIndexes(org.modeshape.jcr.query.QueryContext, org.modeshape.jcr.query.model.SelectorName, java.util.List<javax.jcr.query.qom.Constraint>, java.lang.Iterable<org.modeshape.jcr.spi.index.IndexDefinition>, org.modeshape.jcr.spi.index.IndexCollector)
method so that the
IndexPlanner
can add indexes to the query plan.
The cardinality estimate is an esimate of the number of nodes that will be returned by this index given the constraints. For example, an index that will return one node should have a cardinality of 1. When possible, the actual cardinality should be used. However, since an accurate number is often expensive or impossible to determine in the planning phase, the cardinality can instead represent a rough order of magnitude.
Return an estimate of the cost of using the index for the query in question. An index that is expensive to use will have a
higher cost than another index that is less expensive to use. For example, if a IndexProvider
that owns the index is in
a remote process, then the cost estimate will need to take into account the cost of transmitting the request with the criteria
and the response with all of the node that meet the criteria of the index.
Indexes with lower costs and lower cardinalities will be favored over other indexes.
Modifier and Type | Method and Description |
---|---|
void |
addIndex(String name,
String providerName,
Collection<Constraint> constraints,
int costEstimate,
long cardinalityEstimate)
Add to the query plan the information necessary to signal that the supplied index can be used to answer the query.
|
void |
addIndex(String name,
String providerName,
Collection<Constraint> constraints,
int costEstimate,
long cardinalityEstimate,
Map<String,Object> parameters)
Add to the query plan the information necessary to signal that the supplied index can be used to answer the query.
|
void |
addIndex(String name,
String providerName,
Collection<Constraint> constraints,
int costEstimate,
long cardinalityEstimate,
String parameterName,
Object parameterValue)
Add to the query plan the information necessary to signal that the supplied index can be used to answer the query
|
void |
addIndex(String name,
String providerName,
Collection<Constraint> constraints,
int costEstimate,
long cardinalityEstimate,
String parameterName1,
Object parameterValue1,
String parameterName2,
Object parameterValue2)
Add to the query plan the information necessary to signal that the supplied index can be used to answer the query.
|
void addIndex(String name, String providerName, Collection<Constraint> constraints, int costEstimate, long cardinalityEstimate)
name
- the name of the index; may not be nullproviderName
- the name of the provider; may not be nullconstraints
- the constraints that should be applied to the index if/when it is usedcostEstimate
- an estimate of the cost of using the index for the query in question; must be non-negativecardinalityEstimate
- an esimate of the number of nodes that will be returned by this index given the constraints;
must be non-negativevoid addIndex(String name, String providerName, Collection<Constraint> constraints, int costEstimate, long cardinalityEstimate, String parameterName, Object parameterValue)
name
- the name of the index; may not be nullproviderName
- the name of the provider; may not be nullconstraints
- the constraints that should be applied to the index if/when it is usedcostEstimate
- an estimate of the cost of using the index for the query in question; must be non-negativecardinalityEstimate
- an esimate of the number of nodes that will be returned by this index given the constraints;
must be non-negativeparameterName
- the name of a parameter that is to be supplied back to the Index
if/when this index is
Index.filter(org.modeshape.jcr.spi.index.provider.IndexFilter)
called; may not be nullparameterValue
- the value of a parameter that is to be supplied back to the Index
if/when this index is
Index.filter(org.modeshape.jcr.spi.index.provider.IndexFilter)
called; may not be nullvoid addIndex(String name, String providerName, Collection<Constraint> constraints, int costEstimate, long cardinalityEstimate, String parameterName1, Object parameterValue1, String parameterName2, Object parameterValue2)
name
- the name of the index; may not be nullproviderName
- the name of the provider; may not be nullconstraints
- the constraints that should be applied to the index if/when it is usedcostEstimate
- an estimate of the cost of using the index for the query in question; must be non-negativecardinalityEstimate
- an esimate of the number of nodes that will be returned by this index given the constraints;
must be non-negativeparameterName1
- the name of the first parameter; may not be nullparameterValue1
- the value of the first parameterparameterName2
- the name of the second parameter; may not be nullparameterValue2
- the value of the second parametervoid addIndex(String name, String providerName, Collection<Constraint> constraints, int costEstimate, long cardinalityEstimate, Map<String,Object> parameters)
name
- the name of the index; may not be nullproviderName
- the name of the provider; may not be nullconstraints
- the constraints that should be applied to the index if/when it is usedcostEstimate
- an estimate of the cost of using the index for the query in question; must be non-negativecardinalityEstimate
- an esimate of the number of nodes that will be returned by this index given the constraints;
must be non-negativeparameters
- the parameter values by name; may be null or emptyCopyright © 2008-2014 JBoss, a division of Red Hat. All Rights Reserved.