!CHAPTER Working with Indexes !SECTION Index Identifiers and Handles An *index handle* uniquely identifies an index in the database. It is a string and consists of the collection name and an *index identifier* separated by a `/`. The index identifier part is a numeric value that is auto-generated by ArangoDB. A specific index of a collection can be accessed using its *index handle* or *index identifier* as follows: ```js db.collection.index(""); db.collection.index(""); db._index(""); ``` For example: Assume that the index handle, which is stored in the `_id` attribute of the index, is `demo/362549736` and the index was created in a collection named `demo`. Then this index can be accessed as: ```js db.demo.index("demo/362549736"); ``` Because the index handle is unique within the database, you can leave out the *collection* and use the shortcut: ```js db._index("demo/362549736"); ``` !SECTION Collection Methods !SUBSECTION Listing all indexes of a collection @startDocuBlock collectionGetIndexes !SUBSECTION Creating an index Indexes should be created using the general method *ensureIndex*. This method obsoletes the specialized index-specific methods *ensureHashIndex*, *ensureSkiplist*, *ensureUniqueConstraint* etc. @startDocuBlock collectionEnsureIndex !SUBSECTION Dropping an index @startDocuBlock col_dropIndex !SECTION Database Methods !SUBSECTION Fetching an index by handle @startDocuBlock IndexHandle !SUBSECTION Dropping an index @startDocuBlock dropIndex !SUBSECTION Revalidating whether an index is used @startDocuBlock IndexVerify