Class FlatRStarTreeIndex<O extends elki.data.NumberVector>

  • Type Parameters:
    O - Object type
    All Implemented Interfaces:
    elki.index.DistancePriorityIndex<O>, elki.index.DynamicIndex, elki.index.Index, elki.index.KNNIndex<O>, elki.index.RangeIndex<O>

    public class FlatRStarTreeIndex<O extends elki.data.NumberVector>
    extends FlatRStarTree
    implements elki.index.DistancePriorityIndex<O>, elki.index.DynamicIndex
    The common use of the flat rstar tree: indexing number vectors.
    Since:
    0.7.0
    Author:
    Erich Schubert
    • Field Detail

      • LOG

        private static final elki.logging.Logging LOG
        The appropriate logger for this index.
      • relation

        private elki.database.relation.Relation<O extends elki.data.NumberVector> relation
        The relation we index
    • Constructor Detail

      • FlatRStarTreeIndex

        public FlatRStarTreeIndex​(elki.database.relation.Relation<O> relation,
                                  elki.persistent.PageFile<FlatRStarTreeNode> pagefile,
                                  RTreeSettings settings)
        Constructor.
        Parameters:
        relation - Relation to index
        pagefile - Page file
        settings - Tree settings
    • Method Detail

      • createNewLeafEntry

        protected SpatialEntry createNewLeafEntry​(elki.database.ids.DBID id)
        Wrap a vector as spatial point leaf entry.
        Parameters:
        id - Object DBID
        Returns:
        spatial leaf
      • initialize

        public void initialize()
        Specified by:
        initialize in interface elki.index.Index
        Overrides:
        initialize in class elki.index.tree.IndexTree<FlatRStarTreeNode,​SpatialEntry>
      • insert

        public final void insert​(elki.database.ids.DBIDRef id)
        Inserts the specified real vector object into this index.
        Specified by:
        insert in interface elki.index.DynamicIndex
        Parameters:
        id - the object id that was inserted
      • insertAll

        public final void insertAll​(elki.database.ids.DBIDs ids)
        Inserts the specified objects into this index. If a bulk load mode is implemented, the objects are inserted in one bulk.
        Specified by:
        insertAll in interface elki.index.DynamicIndex
        Parameters:
        ids - the objects to be inserted
      • delete

        public final boolean delete​(elki.database.ids.DBIDRef id)
        Specified by:
        delete in interface elki.index.DynamicIndex
      • deleteAll

        public void deleteAll​(elki.database.ids.DBIDs ids)
        Specified by:
        deleteAll in interface elki.index.DynamicIndex
      • kNNByObject

        public elki.database.query.knn.KNNSearcher<O> kNNByObject​(elki.database.query.distance.DistanceQuery<O> distanceQuery,
                                                                  int maxk,
                                                                  int flags)
        Specified by:
        kNNByObject in interface elki.index.DistancePriorityIndex<O extends elki.data.NumberVector>
        Specified by:
        kNNByObject in interface elki.index.KNNIndex<O extends elki.data.NumberVector>
      • rangeByObject

        public elki.database.query.range.RangeSearcher<O> rangeByObject​(elki.database.query.distance.DistanceQuery<O> distanceQuery,
                                                                        double maxradius,
                                                                        int flags)
        Specified by:
        rangeByObject in interface elki.index.DistancePriorityIndex<O extends elki.data.NumberVector>
        Specified by:
        rangeByObject in interface elki.index.RangeIndex<O extends elki.data.NumberVector>
      • priorityByObject

        public elki.database.query.PrioritySearcher<O> priorityByObject​(elki.database.query.distance.DistanceQuery<O> distanceQuery,
                                                                        double maxradius,
                                                                        int flags)
        Specified by:
        priorityByObject in interface elki.index.DistancePriorityIndex<O extends elki.data.NumberVector>