Hi Thomas,
In Pacer you can create an index with graph.create_key_index(:property_name, :vertex) and see what key indices you have with graph.key_indices.
It's also worth noting that you can inspect a route to see whether it is using the index correctly. For instance in TinkerGraph:
graph = Pacer.tg
graph.create_key_index(:property_name, :vertex)
route = graph.v(indexed_property: "value")
route.description
#=> "#<V-Index(indexed_property: \"value\")>"
compared to a property that is not indexed:
graph.v(not_indexed: 'value').description
"#<GraphV -> V-Property(not_indexed==\"value\")>"
Pacer calls the graph.key_indices method to determine whether it can automatically give you an indexed route. Your property must appear in that list for Pacer to use it as an index.
Also, if you give it multiple indexable properties, (i.e. graph.v(p1: "valueA", p2: "valueB") ) Pacer will do some work to try to obtain a count from the indices in order to choose the best one to use. Unfortunately this is difficult since the count method has been removed from the index class in Blueprints. It's possible that Pacer is doing something that causes Titan to be slow. I've been mitigating these problems on an implementation-by-implementation basis, but so far have not looked at the issue for Titan.
I'm happy to help further, if you need it.
One other note to add. I noticed that you seem to often dig into the raw Blueprints methods to get stuff done. That should almost never be necessary. Pacer provides a complete interface to the graph on its own.
Cheers!
Darrick