我在使弹性搜索索引与Titan Server正常工作时遇到问题。我目前使用Titan Server 0.4.0进行了本地Titan / Cassandra设置,并启用了弹性搜索。我有一个带有以下属性的测试图'bg':
我正在使用rexster-cassandra-es.xml配置运行titan.sh,我的配置如下所示:
storage.backend = "cassandra"
storage.hostname = "127.0.0.1"
storage.index.search.backend = "elasticsearch"
storage.index.search.directory = "db/es"
storage.index.search.client-only= "false"
storage.index.search.local-mode = "true"
此配置与Rexter中的bg配置和加载数据的groovy脚本相同。
当我加载Rexster客户端并输入g = rexster.getGraph("bg")
时,我可以使用g.V.has("type","ip_address")
执行精确搜索并获取正确的顶点。但是当我运行查询时:
g.V.has("type",CONTAINS,"ip_")
我收到错误:
Data type of key is not compatible with condition
我认为这与未被编入索引的“值”类型有关。我想要做的是使所有顶点和边缘属性可索引,以便我可以根据需要使用它们上的任何字符串匹配函数。我已经尝试使用命令
创建索引键g.makeKey("type").dataType(String.class).indexed(Vertex.class).indexed("search",Vertex.class).make()
但说实话,我不知道这是如何运作的。任何人都可以帮我指出正确的方向吗?我完全不熟悉弹性搜索和Titan类型定义。
谢谢,
亚当