de.lmu.ifi.dbs.elki.index.tree.metrical.mtreevariants.query
Class MetricalIndexRangeQuery<O,D extends Distance<D>>

java.lang.Object
  extended by de.lmu.ifi.dbs.elki.database.query.AbstractDataBasedQuery<O>
      extended by de.lmu.ifi.dbs.elki.database.query.range.AbstractDistanceRangeQuery<O,D>
          extended by de.lmu.ifi.dbs.elki.index.tree.metrical.mtreevariants.query.MetricalIndexRangeQuery<O,D>
All Implemented Interfaces:
DatabaseQuery, RangeQuery<O,D>

public class MetricalIndexRangeQuery<O,D extends Distance<D>>
extends AbstractDistanceRangeQuery<O,D>

Instance of a range query for a particular spatial index.


Field Summary
protected  AbstractMTree<O,D,?,?> index
          The index to use
 
Fields inherited from class de.lmu.ifi.dbs.elki.database.query.range.AbstractDistanceRangeQuery
distanceQuery
 
Fields inherited from class de.lmu.ifi.dbs.elki.database.query.AbstractDataBasedQuery
relation
 
Fields inherited from interface de.lmu.ifi.dbs.elki.database.query.DatabaseQuery
HINT_BULK, HINT_EXACT, HINT_HEAVY_USE, HINT_NO_CACHE, HINT_OPTIMIZED_ONLY, HINT_SINGLE
 
Constructor Summary
MetricalIndexRangeQuery(AbstractMTree<O,D,?,?> index, DistanceQuery<O,D> distanceQuery)
          Constructor.
 
Method Summary
private  void doRangeQuery(DBID o_p, AbstractMTreeNode<O,D,?,?> node, DBID q, D r_q, List<DistanceResultPair<D>> result)
          Performs a range query on the specified subtree.
private  void doRangeQuery(DBID o_p, AbstractMTreeNode<O,D,?,?> node, O q, D r_q, List<DistanceResultPair<D>> result)
          Performs a range query on the specified subtree.
 List<DistanceResultPair<D>> getRangeForDBID(DBID id, D range)
          Get the nearest neighbors for a particular id in a given query range
 List<DistanceResultPair<D>> getRangeForObject(O obj, D range)
          Get the nearest neighbors for a particular object in a given query range
 
Methods inherited from class de.lmu.ifi.dbs.elki.database.query.range.AbstractDistanceRangeQuery
getDistanceFactory, getRangeForBulkDBIDs
 
Methods inherited from class de.lmu.ifi.dbs.elki.database.query.AbstractDataBasedQuery
getRelation
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface de.lmu.ifi.dbs.elki.database.query.range.RangeQuery
getRelation
 

Field Detail

index

protected final AbstractMTree<O,D extends Distance<D>,?,?> index
The index to use

Constructor Detail

MetricalIndexRangeQuery

public MetricalIndexRangeQuery(AbstractMTree<O,D,?,?> index,
                               DistanceQuery<O,D> distanceQuery)
Constructor.

Parameters:
index - Index to use
distanceQuery - Distance query used
Method Detail

doRangeQuery

private void doRangeQuery(DBID o_p,
                          AbstractMTreeNode<O,D,?,?> node,
                          DBID q,
                          D r_q,
                          List<DistanceResultPair<D>> result)
Performs a range query on the specified subtree. It recursively traverses all paths from the specified node, which cannot be excluded from leading to qualifying objects.

Parameters:
o_p - the routing object of the specified node
node - the root of the subtree to be traversed
q - the id of the query object
r_q - the query range
result - the list holding the query results

doRangeQuery

private void doRangeQuery(DBID o_p,
                          AbstractMTreeNode<O,D,?,?> node,
                          O q,
                          D r_q,
                          List<DistanceResultPair<D>> result)
Performs a range query on the specified subtree. It recursively traverses all paths from the specified node, which cannot be excluded from leading to qualifying objects.

Parameters:
o_p - the routing object of the specified node
node - the root of the subtree to be traversed
q - the id of the query object
r_q - the query range
result - the list holding the query results

getRangeForObject

public List<DistanceResultPair<D>> getRangeForObject(O obj,
                                                     D range)
Description copied from interface: RangeQuery
Get the nearest neighbors for a particular object in a given query range

Specified by:
getRangeForObject in interface RangeQuery<O,D extends Distance<D>>
Specified by:
getRangeForObject in class AbstractDistanceRangeQuery<O,D extends Distance<D>>
Parameters:
obj - Query object
range - Query range
Returns:
neighbors

getRangeForDBID

public List<DistanceResultPair<D>> getRangeForDBID(DBID id,
                                                   D range)
Description copied from interface: RangeQuery
Get the nearest neighbors for a particular id in a given query range

Specified by:
getRangeForDBID in interface RangeQuery<O,D extends Distance<D>>
Specified by:
getRangeForDBID in class AbstractDistanceRangeQuery<O,D extends Distance<D>>
Parameters:
id - query object ID
range - Query range
Returns:
neighbors

Release 0.4.0 (2011-09-20_1324)