我有两个问题:如何索引此查询?
g.V(vertexId).repeat(下()。hasLabel( ‘位置’))。发射()。树()下。()
在Titan 1.0文档中,只有一些方法可以将图形索引一次……
这里的 一个答案 。 复合索引和混合索引都只适用于第一级gremlin查询,而不适用于第二级。二级查询需要以顶点为中心的索引。
如果该查询需要很长时间,则问题可能是它访问了太多元素,或者它被卡在无限循环中。现有的JanusGraph / Titan索引对此无济于事。您已经通过id进行了直接顶点查找, g.V(vertexId) ,查询的其余部分是从该顶点遍历邻域。我建议使用边缘标签,即 out('friends') ,限制您访问的边数。你也可以用 simplePath() 消除循环路径。你也可以用 times() 要么 until() 限制循环使用的次数 repeat() 步。
g.V(vertexId)
out('friends')
simplePath()
times()
until()
repeat()
您引用的配置示例仅使用复合索引,不需要索引后端。
混合指数 需要配置索引后端,Elasticsearch,Lucene或Solr。选择其中一个,然后确保在初始化图形时传递正确的配置属性。您可以在分发zip文件中找到几个示例 conf 目录。例如,在 janusgraph-cassandra-es.properties , 你会找到:
conf
janusgraph-cassandra-es.properties
index.search.backend=elasticsearch index.search.hostname=127.0.0.1 index.search.elasticsearch.client-only=true
哪里 search 在 index.X.backend 是您必须传递给的所选索引配置名称 buildMixedIndex(X) 。
search
index.X.backend
buildMixedIndex(X)