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 Logging
LOG
The 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 MTreeEntry
createNewDirectoryEntry(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 MTreeEntry
createRootEntry()
Creates an entry representing the root node.protected Logging
getLogger()
Get the (STATIC) logger for this class.protected void
preInsert(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:
preInsert
in 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:AbstractMTree
Creates a new directory entry representing the specified node.- Specified by:
createNewDirectoryEntry
in 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:IndexTree
Creates an entry representing the root node.- Specified by:
createRootEntry
in 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:IndexTree
Creates a new leaf node with the specified capacity.- Specified by:
createNewLeafNode
in classIndexTree<MTreeNode<O>,MTreeEntry>
- Returns:
- a new MTreeNode which is a leaf node
-
createNewDirectoryNode
protected MTreeNode<O> createNewDirectoryNode()
Description copied from class:IndexTree
Creates a new directory node with the specified capacity.- Specified by:
createNewDirectoryNode
in classIndexTree<MTreeNode<O>,MTreeEntry>
- Returns:
- a new MTreeNode which is a directory node
-
-