Class RStarTreeDistancePrioritySearcher<O extends elki.data.spatial.SpatialComparable>

  • All Implemented Interfaces:
    elki.database.ids.DBIDIter, elki.database.ids.DBIDRef, elki.database.query.knn.KNNSearcher<O>, elki.database.query.PrioritySearcher<O>, elki.database.query.range.RangeSearcher<O>, elki.utilities.datastructures.iterator.Iter

    public class RStarTreeDistancePrioritySearcher<O extends elki.data.spatial.SpatialComparable>
    extends java.lang.Object
    implements elki.database.query.PrioritySearcher<O>
    Instance of priority search for a particular spatial index.
    Since:
    0.8.0
    Author:
    Erich Schubert
    • Field Summary

      Fields 
      Modifier and Type Field Description
      (package private) int childnr
      Candidate within node
      protected elki.distance.SpatialPrimitiveDistance<? super O> distance
      Spatial primitive distance function.
      private double mindist
      Distance to current node
      (package private) AbstractRStarTreeNode<?,​?> node
      Current node
      (package private) elki.utilities.datastructures.heap.DoubleIntegerMinHeap pq
      Priority queue
      (package private) O query
      Query object
      protected elki.database.relation.Relation<? extends O> relation
      Relation we query.
      (package private) double threshold
      Stopping distance threshold
      protected AbstractRStarTree<?,​?,​?> tree
      The index to use
    • Constructor Summary

      Constructors 
      Constructor Description
      RStarTreeDistancePrioritySearcher​(AbstractRStarTree<?,​?,​?> tree, elki.database.relation.Relation<? extends O> relation, elki.distance.SpatialPrimitiveDistance<? super O> distance)
      Constructor.
    • Field Detail

      • distance

        protected final elki.distance.SpatialPrimitiveDistance<? super O extends elki.data.spatial.SpatialComparable> distance
        Spatial primitive distance function.
      • relation

        protected elki.database.relation.Relation<? extends O extends elki.data.spatial.SpatialComparable> relation
        Relation we query.
      • query

        O extends elki.data.spatial.SpatialComparable query
        Query object
      • threshold

        double threshold
        Stopping distance threshold
      • pq

        elki.utilities.datastructures.heap.DoubleIntegerMinHeap pq
        Priority queue
      • childnr

        int childnr
        Candidate within node
      • mindist

        private double mindist
        Distance to current node
    • Constructor Detail

      • RStarTreeDistancePrioritySearcher

        public RStarTreeDistancePrioritySearcher​(AbstractRStarTree<?,​?,​?> tree,
                                                 elki.database.relation.Relation<? extends O> relation,
                                                 elki.distance.SpatialPrimitiveDistance<? super O> distance)
        Constructor.
        Parameters:
        tree - Index to use
        relation - Data relation to query
        distance - Distance function
    • Method Detail

      • getKNN

        public elki.database.ids.KNNList getKNN​(O obj,
                                                int k)
        Specified by:
        getKNN in interface elki.database.query.knn.KNNSearcher<O extends elki.data.spatial.SpatialComparable>
        Specified by:
        getKNN in interface elki.database.query.PrioritySearcher<O extends elki.data.spatial.SpatialComparable>
      • getRange

        public elki.database.ids.ModifiableDoubleDBIDList getRange​(O obj,
                                                                   double range,
                                                                   elki.database.ids.ModifiableDoubleDBIDList result)
        Specified by:
        getRange in interface elki.database.query.PrioritySearcher<O extends elki.data.spatial.SpatialComparable>
        Specified by:
        getRange in interface elki.database.query.range.RangeSearcher<O extends elki.data.spatial.SpatialComparable>
      • search

        public RStarTreeDistancePrioritySearcher<O> search​(O query)
        Specified by:
        search in interface elki.database.query.PrioritySearcher<O extends elki.data.spatial.SpatialComparable>
      • decreaseCutoff

        public RStarTreeDistancePrioritySearcher<O> decreaseCutoff​(double threshold)
        Specified by:
        decreaseCutoff in interface elki.database.query.PrioritySearcher<O extends elki.data.spatial.SpatialComparable>
      • valid

        public boolean valid()
        Specified by:
        valid in interface elki.utilities.datastructures.iterator.Iter
      • advance

        public RStarTreeDistancePrioritySearcher<O> advance()
        Specified by:
        advance in interface elki.database.ids.DBIDIter
        Specified by:
        advance in interface elki.utilities.datastructures.iterator.Iter
        Specified by:
        advance in interface elki.database.query.PrioritySearcher<O extends elki.data.spatial.SpatialComparable>
      • advanceQueue

        protected boolean advanceQueue()
        Expand the next node of the priority heap.
      • getLowerBound

        public double getLowerBound()
        Specified by:
        getLowerBound in interface elki.database.query.PrioritySearcher<O extends elki.data.spatial.SpatialComparable>
      • allLowerBound

        public double allLowerBound()
        Specified by:
        allLowerBound in interface elki.database.query.PrioritySearcher<O extends elki.data.spatial.SpatialComparable>
      • computeExactDistance

        public double computeExactDistance()
        Specified by:
        computeExactDistance in interface elki.database.query.PrioritySearcher<O extends elki.data.spatial.SpatialComparable>
      • internalGetIndex

        public int internalGetIndex()
        Specified by:
        internalGetIndex in interface elki.database.ids.DBIDRef