Class RStarTreeIndex<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 RStarTreeIndex<O extends elki.data.NumberVector>
    extends RStarTree
    implements elki.index.DistancePriorityIndex<O>, elki.index.DynamicIndex
    The common use of the rstar tree: indexing number vectors.
    Since:
    0.4.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
        Relation
    • Constructor Detail

      • RStarTreeIndex

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

      • createNewLeafEntry

        protected SpatialPointLeafEntry createNewLeafEntry​(elki.database.ids.DBIDRef id)
        Create a new leaf entry.
        Parameters:
        id - Object id
        Returns:
        Spatial leaf entry
      • initialize

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

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

        public 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 boolean delete​(elki.database.ids.DBIDRef id)
        Deletes the specified object from this index.
        Specified by:
        delete in interface elki.index.DynamicIndex
        Returns:
        true if this index did contain the object with the specified id, false otherwise
      • 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>
      • getLogger

        protected elki.logging.Logging getLogger()
        Overrides:
        getLogger in class RStarTree