The Neo4j Manual v2.3-SNAPSHOT10.8. Using

10.8. Using

USING is used to give Neo4j hints about which index to use, or to scan instead of using an index.

If you do not specify an explicit START clause, Cypher needs to infer where in the graph to start your query.
This is done by looking at the MATCH clause and the WHERE conditions and using that information to find a useful index.

This index might not be the best choice though — sometimes multiple indexes could be used, and Neo4j has picked the wrong one (from a performance point of view).

You can force Neo4j to use a specific starting point through the USING clause.
This is called giving an index hint.

If your query matches large parts of an index, it might be faster to scan the label and filter out nodes that do not match.
To do this, you can use USING SCAN.
It will force Cypher to not use an index that could have been used, and instead do a label scan.