O
- the type of DatabaseObject to be stored in the metrical indexD
- the type of Distance used in the metrical index@Title(value="M-Tree") @Description(value="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="VLDB\'97, Proceedings of 23rd International Conference on Very Large Data Bases, August 25-29, 1997, Athens, Greece", url="http://www.vldb.org/conf/1997/P426.PDF") public abstract class MTree<O,D extends NumberDistance<D,?>> extends AbstractMTree<O,D,MTreeNode<O,D>,MTreeEntry,MTreeSettings<O,D,MTreeNode<O,D>,MTreeEntry>>
P. Ciaccia, M. Patella, P. Zezula
M-tree: An Efficient Access Method for Similarity Search in Metric Spaces
In Proceedings of 23rd International Conference on Very Large Data Bases
(VLDB'97), August 25-29, 1997, Athens, Greece
AbstractMTree.Statistics
Modifier and Type | Field and Description |
---|---|
private static Logging |
LOG
The logger for this class.
|
EXTRA_INTEGRITY_CHECKS, settings, statistics
dirCapacity, dirMinimum, initialized, leafCapacity, leafMinimum
Constructor and Description |
---|
MTree(PageFile<MTreeNode<O,D>> pagefile,
MTreeSettings<O,D,MTreeNode<O,D>,MTreeEntry> settings)
Constructor.
|
Modifier and Type | Method and Description |
---|---|
protected MTreeEntry |
createNewDirectoryEntry(MTreeNode<O,D> node,
DBID routingObjectID,
double parentDistance)
Creates a new directory entry representing the specified node.
|
protected MTreeNode<O,D> |
createNewDirectoryNode()
Creates a new directory node with the specified capacity.
|
protected MTreeNode<O,D> |
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.
|
createEmptyRoot, distance, distance, getDistanceFactory, getDistanceFunction, getHeight, getLeaves, getSortedEntries, insert, insertAll, logStatistics, toString
createHeader, deleteNode, getFile, getNode, getNode, getPageID, getPageSize, getRoot, getRootEntry, getRootID, getRootPath, initialize, initialize, initializeCapacities, initializeFromFile, isRoot, postDelete, writeNode
private static final Logging LOG
protected void preInsert(MTreeEntry entry)
preInsert
in class IndexTree<MTreeNode<O,D extends NumberDistance<D,?>>,MTreeEntry>
entry
- the entry to be insertedprotected MTreeEntry createNewDirectoryEntry(MTreeNode<O,D> node, DBID routingObjectID, double parentDistance)
AbstractMTree
createNewDirectoryEntry
in class AbstractMTree<O,D extends NumberDistance<D,?>,MTreeNode<O,D extends NumberDistance<D,?>>,MTreeEntry,MTreeSettings<O,D extends NumberDistance<D,?>,MTreeNode<O,D extends NumberDistance<D,?>>,MTreeEntry>>
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 nodeprotected MTreeEntry createRootEntry()
IndexTree
createRootEntry
in class IndexTree<MTreeNode<O,D extends NumberDistance<D,?>>,MTreeEntry>
new MTreeDirectoryEntry(null, null, 0, null)
protected MTreeNode<O,D> createNewLeafNode()
IndexTree
createNewLeafNode
in class IndexTree<MTreeNode<O,D extends NumberDistance<D,?>>,MTreeEntry>
protected MTreeNode<O,D> createNewDirectoryNode()
IndexTree
createNewDirectoryNode
in class IndexTree<MTreeNode<O,D extends NumberDistance<D,?>>,MTreeEntry>
protected Logging getLogger()
IndexTree
getLogger
in class IndexTree<MTreeNode<O,D extends NumberDistance<D,?>>,MTreeEntry>