Titan 0.4.0 を実行してREGEX
おり、ES 文字列検索に最新の演算子を使用しようとしています。
my_key
という名前の ES インデックスのインデックスを作成しましたsearch
。
gremlin> g.makeKey("my_key").dataType(String.class).indexed("search",Vertex.class).single().make()
==>v[82]
次に、頂点を追加します。
gremlin> v = g.addVertex(null, ["my_key":"123-abc"])
==>v[8]
gremlin> v.map
==>{my_key=123-abc}
動作するREGEX
ようです...
gremlin> g.query().has("my_key", REGEX, "[12]{2}3").vertices()
==>v[8]
...しかし、トークン化さ"123"
れ"abc"
た独立したもののみ:
gremlin> g.query().has("my_key", REGEX, "123").vertices()
==>v[8]
gremlin> g.query().has("my_key", REGEX, "abc").vertices()
==>v[8]
ただし、完全な値に一致する正規表現を実行しようとすると、頂点が取得されません (以下のいずれも結果を返しません)。
gremlin> g.query().has("my_key", REGEX, "123-abc").vertices()
gremlin> g.query().has("my_key", REGEX, "123.abc").vertices()
gremlin> g.query().has("my_key", REGEX, "[0-9]+.[abc]{3}").vertices()
gremlin> g.query().has("my_key", REGEX, "123.").vertices()
Titan でこの方法でインデックスをクエリする方法はありますか (トークン化/分析された用語のない正規表現)?