Package elki.database.query
Interface QueryOptimizer
-
- All Known Implementing Classes:
DisableQueryOptimizer,EmpiricalQueryOptimizer
public interface QueryOptimizerInterface to automatically add indexes to a database when no suitable indexes have been found. The dummy implementationDisableQueryOptimizercan be used to disable this functionality, for example for benchmarking purposes.- Since:
- 0.8.0
- Author:
- Erich Schubert
-
-
Method Summary
All Methods Instance Methods Default Methods Modifier and Type Method Description default <O> elki.database.query.distance.DistanceQuery<O>getDistanceQuery(elki.database.relation.Relation<? extends O> relation, elki.distance.Distance<? super O> distanceFunction, int flags)Optimize a distance query for this relation.default <O> elki.database.query.similarity.SimilarityQuery<O>getSimilarityQuery(elki.database.relation.Relation<? extends O> relation, elki.similarity.Similarity<? super O> similarityFunction, int flags)Optimize a similarity query for this relation.default <O> elki.database.query.knn.KNNSearcher<elki.database.ids.DBIDRef>kNNByDBID(elki.database.relation.Relation<? extends O> relation, elki.database.query.distance.DistanceQuery<O> distanceQuery, int maxk, int flags)Optimize a kNN query for this relation.default <O> elki.database.query.knn.KNNSearcher<O>kNNByObject(elki.database.relation.Relation<? extends O> relation, elki.database.query.distance.DistanceQuery<O> distanceQuery, int maxk, int flags)Optimize a kNN query for this relation.default <O> elki.database.query.PrioritySearcher<elki.database.ids.DBIDRef>priorityByDBID(elki.database.relation.Relation<? extends O> relation, elki.database.query.distance.DistanceQuery<O> distanceQuery, double maxrange, int flags)Optimize a distance priority search for this relation.default <O> elki.database.query.PrioritySearcher<O>priorityByObject(elki.database.relation.Relation<? extends O> relation, elki.database.query.distance.DistanceQuery<O> distanceQuery, double maxrange, int flags)Optimize a distance priority search for this relation.default <O> elki.database.query.range.RangeSearcher<elki.database.ids.DBIDRef>rangeByDBID(elki.database.relation.Relation<? extends O> relation, elki.database.query.distance.DistanceQuery<O> distanceQuery, double maxrange, int flags)Optimize a range query for this relation.default <O> elki.database.query.range.RangeSearcher<O>rangeByObject(elki.database.relation.Relation<? extends O> relation, elki.database.query.distance.DistanceQuery<O> distanceQuery, double maxrange, int flags)Optimize a range query for this relation.default <O> elki.database.query.rknn.RKNNSearcher<elki.database.ids.DBIDRef>rkNNByDBID(elki.database.relation.Relation<? extends O> relation, elki.database.query.distance.DistanceQuery<O> distanceQuery, int maxk, int flags)Optimize a reverse nearest neighbors query for this relation.default <O> elki.database.query.rknn.RKNNSearcher<O>rkNNByObject(elki.database.relation.Relation<? extends O> relation, elki.database.query.distance.DistanceQuery<O> distanceQuery, int maxk, int flags)Optimize a reverse nearest neighbors query for this relation.default <O> elki.database.query.range.RangeSearcher<elki.database.ids.DBIDRef>similarityRangeByDBID(elki.database.relation.Relation<? extends O> relation, elki.database.query.similarity.SimilarityQuery<O> simQuery, double maxrange, int flags)Optimize a range query for this relation.default <O> elki.database.query.range.RangeSearcher<O>similarityRangeByObject(elki.database.relation.Relation<? extends O> relation, elki.database.query.similarity.SimilarityQuery<O> simQuery, double maxrange, int flags)Optimize a range query for this relation.
-
-
-
Method Detail
-
getSimilarityQuery
default <O> elki.database.query.similarity.SimilarityQuery<O> getSimilarityQuery(elki.database.relation.Relation<? extends O> relation, elki.similarity.Similarity<? super O> similarityFunction, int flags)Optimize a similarity query for this relation.- Type Parameters:
O- Object type- Parameters:
relation- Data relationsimilarityFunction- Similarity functionflags- Optimizer flags- Returns:
- optimized query, if possible
-
getDistanceQuery
default <O> elki.database.query.distance.DistanceQuery<O> getDistanceQuery(elki.database.relation.Relation<? extends O> relation, elki.distance.Distance<? super O> distanceFunction, int flags)Optimize a distance query for this relation.- Type Parameters:
O- Object type- Parameters:
relation- Data relationdistanceFunction- Distance functionflags- Optimizer flags- Returns:
- optimized query, if possible
-
kNNByObject
default <O> elki.database.query.knn.KNNSearcher<O> kNNByObject(elki.database.relation.Relation<? extends O> relation, elki.database.query.distance.DistanceQuery<O> distanceQuery, int maxk, int flags)Optimize a kNN query for this relation.- Type Parameters:
O- Object type- Parameters:
relation- Data relationdistanceQuery- distance querymaxk- Maximum kflags- Optimizer flags- Returns:
- optimized query, if possible
-
kNNByDBID
default <O> elki.database.query.knn.KNNSearcher<elki.database.ids.DBIDRef> kNNByDBID(elki.database.relation.Relation<? extends O> relation, elki.database.query.distance.DistanceQuery<O> distanceQuery, int maxk, int flags)Optimize a kNN query for this relation.- Type Parameters:
O- Object type- Parameters:
relation- Data relationdistanceQuery- distance querymaxk- Maximum kflags- Optimizer flags- Returns:
- optimized query, if possible
-
rangeByObject
default <O> elki.database.query.range.RangeSearcher<O> rangeByObject(elki.database.relation.Relation<? extends O> relation, elki.database.query.distance.DistanceQuery<O> distanceQuery, double maxrange, int flags)Optimize a range query for this relation.- Type Parameters:
O- Object type- Parameters:
relation- Data relationdistanceQuery- distance querymaxrange- Maximum rangeflags- Optimizer flags- Returns:
- optimized query, if possible
-
rangeByDBID
default <O> elki.database.query.range.RangeSearcher<elki.database.ids.DBIDRef> rangeByDBID(elki.database.relation.Relation<? extends O> relation, elki.database.query.distance.DistanceQuery<O> distanceQuery, double maxrange, int flags)Optimize a range query for this relation.- Type Parameters:
O- Object type- Parameters:
relation- Data relationdistanceQuery- distance querymaxrange- Maximum rangeflags- Optimizer flags- Returns:
- optimized query, if possible
-
similarityRangeByObject
default <O> elki.database.query.range.RangeSearcher<O> similarityRangeByObject(elki.database.relation.Relation<? extends O> relation, elki.database.query.similarity.SimilarityQuery<O> simQuery, double maxrange, int flags)Optimize a range query for this relation.- Type Parameters:
O- Object type- Parameters:
relation- Data relationsimQuery- similarity querymaxrange- Maximum rangeflags- Optimizer flags- Returns:
- optimized query, if possible
-
similarityRangeByDBID
default <O> elki.database.query.range.RangeSearcher<elki.database.ids.DBIDRef> similarityRangeByDBID(elki.database.relation.Relation<? extends O> relation, elki.database.query.similarity.SimilarityQuery<O> simQuery, double maxrange, int flags)Optimize a range query for this relation.- Type Parameters:
O- Object type- Parameters:
relation- Data relationsimQuery- similarity querymaxrange- Maximum rangeflags- Optimizer flags- Returns:
- optimized query, if possible
-
rkNNByObject
default <O> elki.database.query.rknn.RKNNSearcher<O> rkNNByObject(elki.database.relation.Relation<? extends O> relation, elki.database.query.distance.DistanceQuery<O> distanceQuery, int maxk, int flags)Optimize a reverse nearest neighbors query for this relation.- Type Parameters:
O- Object type- Parameters:
relation- Data relationdistanceQuery- distance queryflags- Optimizer flagsmaxk- Maximum k to query- Returns:
- optimized query, if possible
-
rkNNByDBID
default <O> elki.database.query.rknn.RKNNSearcher<elki.database.ids.DBIDRef> rkNNByDBID(elki.database.relation.Relation<? extends O> relation, elki.database.query.distance.DistanceQuery<O> distanceQuery, int maxk, int flags)Optimize a reverse nearest neighbors query for this relation.- Type Parameters:
O- Object type- Parameters:
relation- Data relationdistanceQuery- distance queryflags- Optimizer flagsmaxk- Maximum k to query- Returns:
- optimized query, if possible
-
priorityByObject
default <O> elki.database.query.PrioritySearcher<O> priorityByObject(elki.database.relation.Relation<? extends O> relation, elki.database.query.distance.DistanceQuery<O> distanceQuery, double maxrange, int flags)Optimize a distance priority search for this relation.- Type Parameters:
O- Object type- Parameters:
relation- Data relationdistanceQuery- distance querymaxrange- Maximum rangeflags- Optimizer flags- Returns:
- optimized query, if possible
-
priorityByDBID
default <O> elki.database.query.PrioritySearcher<elki.database.ids.DBIDRef> priorityByDBID(elki.database.relation.Relation<? extends O> relation, elki.database.query.distance.DistanceQuery<O> distanceQuery, double maxrange, int flags)Optimize a distance priority search for this relation.- Type Parameters:
O- Object type- Parameters:
relation- Data relationdistanceQuery- distance querymaxrange- Maximum rangeflags- Optimizer flags- Returns:
- optimized query, if possible
-
-