我有 Titan 0.3.2 在嵌入式模式下运行,并且能够通过 Gremlin shell 创建和查询 ElasticSearch 索引(请参阅上一个问题)。我使用的是默认配置,它调用 ES 索引“搜索”。
这些搜索通过 Gremlin shell 返回正确的节点且没有错误:
g.query().has('my_label','abc').vertices()
g.query().has('my_label',CONTAINS,'abc').vertices()
但是,如果我尝试通过 RexPro 运行这些相同的 Gremlin 查询,Rexster 会为上面的第一个查询发回此错误:
java.util.concurrent.ExecutionException:
javax.script.ScriptException:
javax.script.ScriptException:
java.lang.IllegalArgumentException: Index is unknown or not configured: search
这是第二个:
java.util.concurrent.ExecutionException:
javax.script.ScriptException:
javax.script.ScriptException:
groovy.lang.MissingPropertyException: No such property: CONTAINS for class: Script3
同样,如果我尝试通过 REST API (GET) 查询索引键:
http://localhost:8182/graphs/graph/vertices?key=my_key&value=abc
我收到相同的错误响应:
{"message":"Index is unknown or not configured: search","error":"Index is unknown or not configured: search"}
最后,如果我尝试从一个干净的数据库开始并通过 rexpro 运行索引创建脚本:
g.makeType().name("my_label").dataType(String.class).indexed("search", Vertex.class).unique(Direction.OUT).makePropertyKey();
我看到相同的未知索引错误:
java.util.concurrent.ExecutionException:
javax.script.ScriptException:
javax.script.ScriptException:
java.lang.IllegalArgumentException: Index is unknown or not configured: search
因此,Rexster 似乎需要一些关于索引后端的附加信息,可能在其配置文件中(我使用的是安装中包含的默认信息)。有谁熟悉这个问题?很高兴提供更多信息。