Class MTree<O>
- java.lang.Object
-
- elki.index.tree.IndexTree<N,E>
-
- elki.index.tree.metrical.MetricalIndexTree<O,N,E>
-
- elki.index.tree.metrical.mtreevariants.AbstractMTree<O,MTreeNode<O>,MTreeEntry,MTreeSettings<O,MTreeNode<O>,MTreeEntry>>
-
- elki.index.tree.metrical.mtreevariants.mtree.MTree<O>
-
- Type Parameters:
O- the type of DatabaseObject to be stored in the metrical index
- All Implemented Interfaces:
Index
- Direct Known Subclasses:
MTreeIndex
@Title("M-Tree") @Description("Efficient Access Method for Similarity Search in Metric Spaces") @Reference(authors="P. Ciaccia, M. Patella, P. Zezula", title="M-tree: An Efficient Access Method for Similarity Search in Metric Spaces", booktitle="Proc. Int. Conf. Very Large Data Bases (VLDB\'97)", url="http://www.vldb.org/conf/1997/P426.PDF", bibkey="DBLP:conf/vldb/CiacciaPZ97") public abstract class MTree<O> extends AbstractMTree<O,MTreeNode<O>,MTreeEntry,MTreeSettings<O,MTreeNode<O>,MTreeEntry>>
MTree is a metrical index structure based on the concepts of the M-Tree. Apart from organizing the objects it also provides several methods to search for certain object in the structure. Persistence is not yet ensured.Reference:
P. Ciaccia, M. Patella, P. Zezula
M-tree: An Efficient Access Method for Similarity Search in Metric Spaces
In Proc. Int. Conf. Very Large Data Bases (VLDB'97)- Since:
- 0.1
- Author:
- Elke Achtert
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class elki.index.tree.metrical.mtreevariants.AbstractMTree
AbstractMTree.Statistics
-
-
Field Summary
Fields Modifier and Type Field Description private static LoggingLOGThe logger for this class.-
Fields inherited from class elki.index.tree.metrical.mtreevariants.AbstractMTree
settings, statistics
-
Fields inherited from class elki.index.tree.IndexTree
dirCapacity, dirMinimum, initialized, leafCapacity, leafMinimum
-
-
Constructor Summary
Constructors Constructor Description MTree(PageFile<MTreeNode<O>> pagefile, MTreeSettings<O,MTreeNode<O>,MTreeEntry> settings)Constructor.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected MTreeEntrycreateNewDirectoryEntry(MTreeNode<O> node, DBID routingObjectID, double parentDistance)Creates a new directory entry representing the specified node.protected MTreeNode<O>createNewDirectoryNode()Creates a new directory node with the specified capacity.protected MTreeNode<O>createNewLeafNode()Creates a new leaf node with the specified capacity.protected MTreeEntrycreateRootEntry()Creates an entry representing the root node.protected LogginggetLogger()Get the (STATIC) logger for this class.protected voidpreInsert(MTreeEntry entry)Does nothing because no operations are necessary before inserting an entry.-
Methods inherited from class elki.index.tree.metrical.mtreevariants.AbstractMTree
createEmptyRoot, distance, distance, doExtraIntegrityChecks, getDistance, getHeight, getLeaves, getSortedEntries, insert, insertAll, logStatistics, toString
-
Methods inherited from class elki.index.tree.IndexTree
createHeader, deleteNode, getFile, getNode, getNode, getPageID, getPageSize, getRootEntry, getRootID, getRootPath, initialize, initialize, initializeCapacities, initializeFromFile, isRoot, postDelete, writeNode
-
-
-
-
Field Detail
-
LOG
private static final Logging LOG
The logger for this class.
-
-
Constructor Detail
-
MTree
public MTree(PageFile<MTreeNode<O>> pagefile, MTreeSettings<O,MTreeNode<O>,MTreeEntry> settings)
Constructor.- Parameters:
pagefile- Page filesettings- Tree settings
-
-
Method Detail
-
preInsert
protected void preInsert(MTreeEntry entry)
Does nothing because no operations are necessary before inserting an entry.- Overrides:
preInsertin classIndexTree<MTreeNode<O>,MTreeEntry>- Parameters:
entry- the entry to be inserted
-
createNewDirectoryEntry
protected MTreeEntry createNewDirectoryEntry(MTreeNode<O> node, DBID routingObjectID, double parentDistance)
Description copied from class:AbstractMTreeCreates a new directory entry representing the specified node.- Specified by:
createNewDirectoryEntryin classAbstractMTree<O,MTreeNode<O>,MTreeEntry,MTreeSettings<O,MTreeNode<O>,MTreeEntry>>- Parameters:
node- the node to be represented by the new entryroutingObjectID- the id of the routing object of the nodeparentDistance- the distance from the routing object of the node to the routing object of the parent node- Returns:
- a new MTreeDirectoryEntry representing the specified node
-
createRootEntry
protected MTreeEntry createRootEntry()
Description copied from class:IndexTreeCreates an entry representing the root node.- Specified by:
createRootEntryin classIndexTree<MTreeNode<O>,MTreeEntry>- Returns:
- a new MTreeDirectoryEntry by calling
new MTreeDirectoryEntry(null, null, 0, null)
-
createNewLeafNode
protected MTreeNode<O> createNewLeafNode()
Description copied from class:IndexTreeCreates a new leaf node with the specified capacity.- Specified by:
createNewLeafNodein classIndexTree<MTreeNode<O>,MTreeEntry>- Returns:
- a new MTreeNode which is a leaf node
-
createNewDirectoryNode
protected MTreeNode<O> createNewDirectoryNode()
Description copied from class:IndexTreeCreates a new directory node with the specified capacity.- Specified by:
createNewDirectoryNodein classIndexTree<MTreeNode<O>,MTreeEntry>- Returns:
- a new MTreeNode which is a directory node
-
-