私はバックエンドとしてelasticsearchでTitan 1.0を使用しています。titan のドキュメントから、elasticsearch を使用するために、インデックスの構築中に mixedIndex を使用することを学びました。私のユースケースと問題は次のとおりです。本屋の登録データ、登録時間のデータ、および名前や年齢などのその他の個人情報用のグラフデータベースを作成しています。特定の時間範囲に登録されたすべてのユーザーを照会したい、つまり、クエリの数値比較関数が必要です。これは私がインデックスを作成する方法です:
PropertyKey propertyKey = mgmt.makePropertyKey("registTime").dataType(Date.class)
.cardinality(Cardinality.SINGLE).make()
timeIndex = mgmt.buildIndex("registeredTime",Vertex.class)
.addKey("registTime", Mapping.TEXTSTRING.asParameter())
.buildMixedIndex("search");
ただし、timeIndex は正常に作成されますが、登録された時刻を次のようにクエリしたい場合は、次のようになります。
g.V().has("registTime", gt("2015-01-01 00:00:00.000+0000"))
それは私に与えます:
WARN com.thinkaurelius.titan.graphdb.transaction.StandardTitanTx - Query requires iterating over all vertices [()]. For better performance, use indexes
gremlinコマンドでチェックして、データがすぐそこにあることを確認しましたが、空の結果が得られます。私は何か間違ったことをしていますか?どうすればこの問題を解決できますか?