【发布时间】:2013-11-16 07:28:42
【问题描述】:
我正在运行 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 中有没有办法以这种方式查询索引(regex w/o tokenized/analyzed terms)?
【问题讨论】:
标签: elasticsearch gremlin titan