
O - Outer object type.I - Inner object type.public class ProjectedIndex<O,I> extends Object implements KNNIndex<O>, RKNNIndex<O>, RangeIndex<O>
LatLngAsECEFIndex and LngLatAsECEFIndex for example
 indexes that support only a specific (good) combination.
 
 FIXME: add refinement to bulk queries!| Modifier and Type | Class and Description | 
|---|---|
static class  | 
ProjectedIndex.Factory<O,I>
Index factory. 
 | 
(package private) class  | 
ProjectedIndex.ProjectedKNNQuery<D extends Distance<D>>
Class to proxy kNN queries. 
 | 
(package private) class  | 
ProjectedIndex.ProjectedRangeQuery<D extends Distance<D>>
Class to proxy range queries. 
 | 
(package private) class  | 
ProjectedIndex.ProjectedRKNNQuery<D extends Distance<D>>
Class to proxy RkNN queries. 
 | 
| Modifier and Type | Field and Description | 
|---|---|
(package private) Index | 
inner
Inner index. 
 | 
(package private) double | 
kmulti
Multiplier for k. 
 | 
private static Logging | 
LOG
Class logger 
 | 
(package private) boolean | 
norefine
Refinement disable flag. 
 | 
(package private) Projection<O,I> | 
proj
Projection. 
 | 
(package private) Counter | 
refinements
Count the number of distance refinements computed. 
 | 
(package private) Relation<O> | 
relation
The relation we predend to index. 
 | 
(package private) Relation<I> | 
view
The view that we really index. 
 | 
| Constructor and Description | 
|---|
ProjectedIndex(Relation<O> relation,
              Projection<O,I> proj,
              Relation<I> view,
              Index inner,
              boolean norefine,
              double kmulti)
Constructor. 
 | 
| Modifier and Type | Method and Description | 
|---|---|
private void | 
countRefinement()
Count a single distance refinement. 
 | 
<D extends Distance<D>>  | 
getKNNQuery(DistanceQuery<O,D> distanceQuery,
           Object... hints)
Get a KNN query object for the given distance query and k. 
 | 
String | 
getLongName()
A "pretty" name for the result, for use in titles, captions and menus. 
 | 
<D extends Distance<D>>  | 
getRangeQuery(DistanceQuery<O,D> distanceQuery,
             Object... hints)
Get a range query object for the given distance query and k. 
 | 
<D extends Distance<D>>  | 
getRKNNQuery(DistanceQuery<O,D> distanceQuery,
            Object... hints)
Get a KNN query object for the given distance query and k. 
 | 
String | 
getShortName()
A short name for the result, useful for file names. 
 | 
void | 
initialize()
Initialize the index. 
 | 
void | 
logStatistics()
Send statistics to the logger, if enabled. 
 | 
private static final Logging LOG
Index inner
Projection<O,I> proj
boolean norefine
double kmulti
final Counter refinements
public ProjectedIndex(Relation<O> relation, Projection<O,I> proj, Relation<I> view, Index inner, boolean norefine, double kmulti)
relation - Relation to index.proj - Projection to use.view - View to use.inner - Index to wrap.norefine - Refinement disable flag.kmulti - Multiplicator for kprivate void countRefinement()
public void initialize()
Indexinitialize in interface Indexpublic String getLongName()
ResultgetLongName in interface Resultpublic String getShortName()
ResultgetShortName in interface Resultpublic void logStatistics()
IndexlogStatistics in interface Indexpublic <D extends Distance<D>> KNNQuery<O,D> getKNNQuery(DistanceQuery<O,D> distanceQuery, Object... hints)
KNNIndexgetKNNQuery in interface KNNIndex<O>D - Distance typedistanceQuery - Distance queryhints - Hints for the optimizernullpublic <D extends Distance<D>> RangeQuery<O,D> getRangeQuery(DistanceQuery<O,D> distanceQuery, Object... hints)
RangeIndexgetRangeQuery in interface RangeIndex<O>D - Distance typedistanceQuery - Distance queryhints - Hints for the optimizernullpublic <D extends Distance<D>> RKNNQuery<O,D> getRKNNQuery(DistanceQuery<O,D> distanceQuery, Object... hints)
RKNNIndexgetRKNNQuery in interface RKNNIndex<O>D - Distance typedistanceQuery - Distance queryhints - Hints for the optimizernull