
public abstract class OIndexAbstract extends Object implements OIndexInternal
OPartitionedLockManager, the default one, or the OOneEntryPerKeyLockManager in case of
distributed. This is to avoid deadlock situation between nodes where keys have the same hash
code.| Modifier and Type | Class and Description |
|---|---|
protected static class |
OIndexAbstract.IndexConfiguration |
static class |
OIndexAbstract.IndexTxSnapshot |
| Modifier and Type | Field and Description |
|---|---|
protected int |
apiVersion |
protected int |
binaryFormatVersion |
protected Set<String> |
clustersToIndex |
protected static String |
CONFIG_MAP_RID |
protected OIndexAbstract.IndexConfiguration |
configuration |
protected int |
indexId |
protected ODocument |
metadata |
protected OAbstractPaginatedStorage |
storage |
protected String |
type |
protected String |
valueContainerAlgorithm |
ALGORITHM, CONFIG_AUTOMATIC, CONFIG_KEYTYPE, CONFIG_NAME, CONFIG_TYPE, INDEX_DEFINITION, INDEX_DEFINITION_CLASS, INDEX_VERSION, METADATA, VALUE_CONTAINER_ALGORITHMMERGE_KEYS| Constructor and Description |
|---|
OIndexAbstract(String name,
String type,
String algorithm,
String valueContainerAlgorithm,
ODocument metadata,
int version,
OStorage storage,
int binaryFormatVersion) |
| Modifier and Type | Method and Description |
|---|---|
boolean |
acquireAtomicExclusiveLock(Object key)
Acquires exclusive lock in the active atomic operation running on the current thread for this
index.
|
protected void |
acquireExclusiveLock() |
protected void |
acquireSharedLock() |
OIndexAbstract |
addCluster(String clusterName)
Add given cluster to the list of clusters that should be automatically indexed.
|
void |
addTxOperation(OIndexAbstract.IndexTxSnapshot snapshots,
OTransactionIndexChanges changes) |
OIndex |
clear()
Deprecated.
Manual indexes are deprecated and will be removed
|
protected void |
clearSnapshot(OIndexAbstract.IndexTxSnapshot indexTxSnapshot) |
void |
close() |
void |
commit(OIndexAbstract.IndexTxSnapshot snapshots) |
protected void |
commitSnapshot(Map<Object,Object> snapshot) |
int |
compareTo(OIndex index) |
long |
count(Object iKey)
Deprecated.
|
OIndexInternal |
create(OIndexDefinition indexDefinition,
String clusterIndexName,
Set<String> clustersToIndex,
boolean rebuild,
OProgressListener progressListener,
OBinarySerializer valueSerializer)
Creates the index.
|
OIndexCursor |
cursor()
Deprecated.
|
OIndexInternal |
delete()
Delete the index.
|
OIndexCursor |
descCursor()
Deprecated.
|
protected abstract OBinarySerializer |
determineValueSerializer() |
protected void |
doDelete() |
protected void |
doReloadIndexEngine() |
boolean |
doRemove(OAbstractPaginatedStorage storage,
Object key) |
boolean |
doRemove(OAbstractPaginatedStorage storage,
Object key,
ORID rid) |
boolean |
equals(Object o) |
void |
flush()
Deprecated.
|
String |
getAlgorithm()
Returns the engine of the index as string.
|
Set<String> |
getClusters()
Returns Names of clusters that will be indexed.
|
Object |
getCollatingValue(Object key) |
ODocument |
getConfiguration()
Returns the index configuration.
|
protected static ODatabaseDocumentInternal |
getDatabase() |
String |
getDatabaseName() |
OIndexDefinition |
getDefinition() |
Object |
getFirstKey()
Deprecated.
|
int |
getIndexId() |
String |
getIndexNameByKey(Object key)
Returns the index name for a key.
|
OIndexInternal |
getInternal()
Returns the internal index used.
|
long |
getKeySize()
Deprecated.
|
OType[] |
getKeyTypes()
Types of the keys that index can accept, if index contains composite key, list of types of
elements from which this index consist will be returned, otherwise single element (key type
obviously) will be returned.
|
Object |
getLastKey()
Deprecated.
|
ODocument |
getMetadata() |
String |
getName()
Returns the index name.
|
long |
getRebuildVersion()
Deprecated.
|
long |
getSize()
Deprecated.
|
String |
getType()
Returns the type of the index as string.
|
int |
getVersion()
Returns binary format version for this index.
|
int |
hashCode() |
boolean |
hasRangeQuerySupport() |
Iterable<OTransactionIndexChangesPerKey.OTransactionIndexEntry> |
interpretTxKeyChanges(OTransactionIndexChangesPerKey changes)
Interprets transaction index changes for a certain key.
|
boolean |
isAutomatic()
Tells if the index is automatic.
|
boolean |
isRebuilding()
Deprecated.
|
boolean |
isUnique() |
OIndexCursor |
iterateEntries(Collection<?> keys,
boolean ascSortOrder)
Deprecated.
|
OIndexCursor |
iterateEntriesBetween(Object fromKey,
boolean fromInclusive,
Object toKey,
boolean toInclusive,
boolean ascOrder)
Deprecated.
|
OIndexCursor |
iterateEntriesMajor(Object fromKey,
boolean fromInclusive,
boolean ascOrder)
Deprecated.
|
OIndexCursor |
iterateEntriesMinor(Object toKey,
boolean toInclusive,
boolean ascOrder)
Deprecated.
|
OIndexKeyCursor |
keyCursor()
Deprecated.
|
Stream<Object> |
keyStream() |
boolean |
loadFromConfiguration(ODocument config)
Loads the index giving the configuration.
|
OIndexMetadata |
loadMetadata(ODocument config) |
static OIndexMetadata |
loadMetadataInternal(ODocument config,
String type,
String algorithm,
String valueContainerAlgorithm) |
static void |
manualIndexesWarning() |
protected void |
onIndexEngineChange(int indexId) |
void |
postCommit(OIndexAbstract.IndexTxSnapshot snapshots) |
void |
preCommit(OIndexAbstract.IndexTxSnapshot snapshots) |
protected void |
putInSnapshot(Object key,
OIdentifiable value,
Map<Object,Object> snapshot) |
long |
rebuild()
Rebuilds an automatic index.
|
long |
rebuild(OProgressListener iProgressListener)
Populate the index with all the existent records.
|
protected void |
releaseExclusiveLock() |
protected void |
releaseSharedLock() |
boolean |
remove(Object key)
Removes an entry by its key.
|
boolean |
remove(Object key,
OIdentifiable rid)
Removes an entry by its key and value.
|
OIndexAbstract |
removeCluster(String iClusterName)
Remove given cluster from the list of clusters that should be automatically indexed.
|
protected void |
removeFromSnapshot(Object key,
OIdentifiable value,
Map<Object,Object> snapshot) |
void |
setType(OType type) |
String |
toString() |
ODocument |
updateConfiguration()
Saves the index configuration to disk.
|
clone, finalize, getClass, notify, notifyAll, wait, wait, waitcanBeUsedInEqualityOperators, descStream, doPut, getRids, isLabelSecurityDefined, isNativeTxSupported, isReadRestrictedBySecurityPolicy, securityFilterOnRead, securityFilterOnRead, size, stream, streamEntries, streamEntriesBetween, streamEntriesMajor, streamEntriesMinorcreate, get, put, supportsOrderedIterationsprotected static final String CONFIG_MAP_RID
protected final String type
protected final ODocument metadata
protected final OAbstractPaginatedStorage storage
protected volatile OIndexAbstract.IndexConfiguration configuration
protected volatile String valueContainerAlgorithm
protected volatile int indexId
protected volatile int apiVersion
protected final int binaryFormatVersion
public static OIndexMetadata loadMetadataInternal(ODocument config, String type, String algorithm, String valueContainerAlgorithm)
public boolean hasRangeQuerySupport()
hasRangeQuerySupport in interface OIndexInternalpublic OIndexInternal create(OIndexDefinition indexDefinition, String clusterIndexName, Set<String> clustersToIndex, boolean rebuild, OProgressListener progressListener, OBinarySerializer valueSerializer)
clusterIndexName - Cluster name where to place the TreeMapprotected void doReloadIndexEngine()
public boolean loadFromConfiguration(ODocument config)
OIndexInternalloadFromConfiguration in interface OIndexInternalconfig - ODocument instance containing the configurationpublic OIndexMetadata loadMetadata(ODocument config)
loadMetadata in interface OIndexInternalpublic long rebuild()
public void close()
close in interface OIndexInternal@Deprecated public long getSize()
@Deprecated public long count(Object iKey)
@Deprecated public long getKeySize()
getKeySize in interface OIndex@Deprecated public void flush()
@Deprecated public long getRebuildVersion()
getRebuildVersion in interface OIndex@Deprecated public boolean isRebuilding()
isRebuilding in interface OIndexgetRebuildVersion()@Deprecated public Object getFirstKey()
getFirstKey in interface OIndex@Deprecated public Object getLastKey()
getLastKey in interface OIndex@Deprecated public OIndexCursor cursor()
@Deprecated public OIndexCursor descCursor()
descCursor in interface OIndex@Deprecated public OIndexKeyCursor keyCursor()
@Deprecated public OIndexCursor iterateEntries(Collection<?> keys, boolean ascSortOrder)
OIndexiterateEntries in interface OIndexkeys - Keys data of which should be returned.ascSortOrder - Flag which determines whether data iterated by cursor should be in
ascending or descending order.@Deprecated public OIndexCursor iterateEntriesBetween(Object fromKey, boolean fromInclusive, Object toKey, boolean toInclusive, boolean ascOrder)
OIndexiterateEntriesBetween in interface OIndexfromKey - Lower border of index data.fromInclusive - Indicates whether lower border should be inclusive or exclusive.toKey - Upper border of index data.toInclusive - Indicates whether upper border should be inclusive or exclusive.ascOrder - Flag which determines whether data iterated by cursor should be in ascending or
descending order.@Deprecated public OIndexCursor iterateEntriesMajor(Object fromKey, boolean fromInclusive, boolean ascOrder)
OIndexiterateEntriesMajor in interface OIndexfromKey - Lower border of index data.fromInclusive - Indicates whether lower border should be inclusive or exclusive.ascOrder - Flag which determines whether data iterated by cursor should be in ascending or
descending order.@Deprecated public OIndexCursor iterateEntriesMinor(Object toKey, boolean toInclusive, boolean ascOrder)
OIndexiterateEntriesMinor in interface OIndextoKey - Upper border of index data.toInclusive - Indicates Indicates whether upper border should be inclusive or exclusive.ascOrder - Flag which determines whether data iterated by cursor should be in ascending or
descending order.public long rebuild(OProgressListener iProgressListener)
public boolean doRemove(OAbstractPaginatedStorage storage, Object key, ORID rid) throws OInvalidIndexEngineIdException
doRemove in interface OIndexInternalOInvalidIndexEngineIdExceptionpublic boolean remove(Object key, OIdentifiable rid)
OIndexpublic boolean remove(Object key)
OIndexpublic boolean doRemove(OAbstractPaginatedStorage storage, Object key) throws OInvalidIndexEngineIdException
doRemove in interface OIndexInternalOInvalidIndexEngineIdException@Deprecated public OIndex clear()
public OIndexInternal delete()
OIndexprotected void doDelete()
public String getType()
OIndexpublic void setType(OType type)
setType in interface OIndexInternalpublic String getAlgorithm()
OIndexgetAlgorithm in interface OIndexpublic OIndexInternal getInternal()
OIndexgetInternal in interface OIndexpublic Set<String> getClusters()
OIndexgetClusters in interface OIndexpublic OIndexAbstract addCluster(String clusterName)
OIndexInternaladdCluster in interface OIndexInternalclusterName - Cluster to add.public OIndexAbstract removeCluster(String iClusterName)
OIndexInternalremoveCluster in interface OIndexInternaliClusterName - Cluster to remove.public int getVersion()
OIndexgetVersion in interface OIndexpublic ODocument updateConfiguration()
OIndexInternalupdateConfiguration in interface OIndexInternalOIndex.getConfiguration()public void addTxOperation(OIndexAbstract.IndexTxSnapshot snapshots, OTransactionIndexChanges changes)
addTxOperation in interface OIndexInternalpublic Iterable<OTransactionIndexChangesPerKey.OTransactionIndexEntry> interpretTxKeyChanges(OTransactionIndexChangesPerKey changes)
ORecordDuplicatedException while applying index
changes.interpretTxKeyChanges in interface OIndexInternalchanges - the changes to interpret.public void commit(OIndexAbstract.IndexTxSnapshot snapshots)
commit in interface OIndexInternalpublic void preCommit(OIndexAbstract.IndexTxSnapshot snapshots)
preCommit in interface OIndexInternalpublic void postCommit(OIndexAbstract.IndexTxSnapshot snapshots)
postCommit in interface OIndexInternalpublic ODocument getConfiguration()
OIndexgetConfiguration in interface OIndexpublic ODocument getMetadata()
getMetadata in interface OIndexpublic boolean isAutomatic()
OIndexisAutomatic in interface OIndexpublic OType[] getKeyTypes()
OIndexgetKeyTypes in interface OIndexpublic Stream<Object> keyStream()
keyStream in interface OIndexInternalpublic OIndexDefinition getDefinition()
getDefinition in interface OIndexpublic int getIndexId()
getIndexId in interface OIndexpublic String getDatabaseName()
getDatabaseName in interface OIndexprotected abstract OBinarySerializer determineValueSerializer()
public Object getCollatingValue(Object key)
getCollatingValue in interface OIndexInternalprotected void putInSnapshot(Object key, OIdentifiable value, Map<Object,Object> snapshot)
protected void removeFromSnapshot(Object key, OIdentifiable value, Map<Object,Object> snapshot)
protected void clearSnapshot(OIndexAbstract.IndexTxSnapshot indexTxSnapshot)
public int compareTo(OIndex index)
compareTo in interface Comparable<OIndex>public String getIndexNameByKey(Object key)
OIndexInternalgetIndexNameByKey in interface OIndexInternalkey - the index key.public boolean acquireAtomicExclusiveLock(Object key)
OIndexInternalIf this index supports a more narrow locking, for example key-based sharding, it may use the
provided key to infer a more narrow lock scope, but that is not a requirement.
acquireAtomicExclusiveLock in interface OIndexInternalkey - the index key to lock.true if this index was locked entirely, false if this index locking is
sensitive to the provided key and only some subset of this index was locked.protected static ODatabaseDocumentInternal getDatabase()
protected void releaseExclusiveLock()
protected void acquireExclusiveLock()
protected void releaseSharedLock()
protected void acquireSharedLock()
protected void onIndexEngineChange(int indexId)
public static void manualIndexesWarning()
Copyright © 2009–2025 OrientDB. All rights reserved.