Vertex Centric Indexes
The idea of this index is to index a combination of a vertex, the direction and any arbitrary set of other attributes on the edges. To take an example, if we have an attribute called on the edges, we can use an outbound vertex-centric index on this attribute to find all edges attached to a vertex with a given type
. The following query example could benefit from such an index:
Using the built-in edge-index ArangoDB can find the list of all edges attached to the vertex fast, but still it has to walk through this list and check if all of them have the attribute type == "friend"
. Using a vertex-centric index would allow ArangoDB to find all edges for the vertex having the attribute in the same time and can save the iteration to verify the condition.
Let us again explain this by an example. Assume we want to create an hash-based outbound vertex-centric index on the attribute . This can be created with the following way:
Show execution results
All options that are supported by persistent indexes are supported by the vertex-centric index as well.
The AQL optimizer can decide to use a vertex-centric whenever suitable, however it is not guaranteed that this index is used, the optimizer may estimate that an other index is assumed to be better. The optimizer will consider this type of indexes on explicit filtering of _from
respectively _to
: