Class LinearScanPrioritySearcher<Q,​O>

  • Type Parameters:
    Q - Query type
    O - Relation object type
    All Implemented Interfaces:
    elki.database.ids.DBIDIter, elki.database.ids.DBIDRef, elki.database.query.knn.KNNSearcher<Q>, elki.database.query.LinearScanQuery, elki.database.query.PrioritySearcher<Q>, elki.database.query.range.RangeSearcher<Q>, elki.utilities.datastructures.iterator.Iter
    Direct Known Subclasses:
    LinearScanPrioritySearcher.ByDBID, LinearScanPrioritySearcher.ByObject

    public abstract class LinearScanPrioritySearcher<Q,​O>
    extends java.lang.Object
    implements elki.database.query.PrioritySearcher<Q>, elki.database.query.LinearScanQuery
    Default linear scan search class.

    This is a fallback option - results are not returned in order, and (as always) may exceed the given cutoff threshold.

    Since:
    0.4.0
    Author:
    Erich Schubert
    • Field Summary

      Fields 
      Modifier and Type Field Description
      protected double curdist
      Current distance
      protected elki.database.query.distance.DistanceQuery<O> distanceQuery
      Distance to use.
      protected elki.database.ids.DBIDIter iter
      Iterator.
      protected O query
      Current query object.
    • Constructor Summary

      Constructors 
      Constructor Description
      LinearScanPrioritySearcher​(elki.database.query.distance.DistanceQuery<O> distanceQuery)
      Constructor.
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      elki.database.query.PrioritySearcher<Q> advance()  
      double allLowerBound()  
      double computeExactDistance()  
      elki.database.query.PrioritySearcher<Q> decreaseCutoff​(double threshold)  
      double getApproximateAccuracy()  
      double getApproximateDistance()  
      double getLowerBound()  
      double getUpperBound()  
      int internalGetIndex()  
      protected elki.database.query.PrioritySearcher<Q> realSearch​(O query)
      Implementation of the search function.
      boolean valid()  
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
      • Methods inherited from interface elki.database.ids.DBIDIter

        addTo
      • Methods inherited from interface elki.database.ids.DBIDRef

        equals, hashCode
      • Methods inherited from interface elki.database.query.PrioritySearcher

        getKNN, getRange, search, search
      • Methods inherited from interface elki.database.query.range.RangeSearcher

        getRange
    • Field Detail

      • distanceQuery

        protected elki.database.query.distance.DistanceQuery<O> distanceQuery
        Distance to use.
      • iter

        protected elki.database.ids.DBIDIter iter
        Iterator.
      • query

        protected O query
        Current query object.
      • curdist

        protected double curdist
        Current distance
    • Constructor Detail

      • LinearScanPrioritySearcher

        public LinearScanPrioritySearcher​(elki.database.query.distance.DistanceQuery<O> distanceQuery)
        Constructor.
        Parameters:
        distanceQuery - Distance function to use
    • Method Detail

      • realSearch

        protected elki.database.query.PrioritySearcher<Q> realSearch​(O query)
        Implementation of the search function.
        Parameters:
        query - Query object
        Returns:
        this
      • valid

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

        public elki.database.query.PrioritySearcher<Q> 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<Q>
      • internalGetIndex

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

        public elki.database.query.PrioritySearcher<Q> decreaseCutoff​(double threshold)
        Specified by:
        decreaseCutoff in interface elki.database.query.PrioritySearcher<Q>
      • computeExactDistance

        public double computeExactDistance()
        Specified by:
        computeExactDistance in interface elki.database.query.PrioritySearcher<Q>
      • getApproximateAccuracy

        public double getApproximateAccuracy()
        Specified by:
        getApproximateAccuracy in interface elki.database.query.PrioritySearcher<Q>
      • getApproximateDistance

        public double getApproximateDistance()
        Specified by:
        getApproximateDistance in interface elki.database.query.PrioritySearcher<Q>
      • getLowerBound

        public double getLowerBound()
        Specified by:
        getLowerBound in interface elki.database.query.PrioritySearcher<Q>
      • getUpperBound

        public double getUpperBound()
        Specified by:
        getUpperBound in interface elki.database.query.PrioritySearcher<Q>
      • allLowerBound

        public double allLowerBound()
        Specified by:
        allLowerBound in interface elki.database.query.PrioritySearcher<Q>