Ich habe ein Titan-Diagramm mit ES-Backend und DynamoDB für Persistenz.Titan - seltsames Verhalten von has() mit gemischtem Index
Methode has("mykey", "value")
ruft nie einen Vertex ab. es gibt immer nichts zurück, wenn nach einer mykey
Abfrage gesucht wird, die von Elasticsearch indiziert wird. Der Index wird aktualisiert und aktiviert.
wenn diese Abfrage ausgeführt wird,
gremlin> graph.indexQuery("verticesIndex2", "v.mykey:myvalue").vertices().asList().size()
==>1 // It works here!! The vertex is retrieved successfully.
gremlin> g.V().has("mykey", "myvalue").hasNext()
==>false // doesn't retrieve anything!!!
gremlin> g.V(16998408).values("mykey")
==>myvalue // the vertex exists in my graph for sure !!
ich einen Trick versuchte es
gremlin> g.V().has("mykey").has("mykey", "myvalue").next()
19:49:44 WARN com.thinkaurelius.titan.graphdb.transaction.StandardTitanTx - Query requires iterating over all vertices [()]. For better performance, use indexes
==>v[16998408] // It works !!
Dies scheint irgendwo ein Problem zu sein, aber nicht sicher, wo genau funktioniert. Irgendwelche Gedanken dazu?