【问题标题】:Indexing in Titan/JanusTitan/Janus 中的索引
【发布时间】:2017-07-03 14:42:18
【问题描述】:

我有两个问题:

  1. 如何索引这个查询?

    g.V(vertexId).repeat(out().hasLabel('location')).emit().tree().next()
    
  2. 在 Titan 1.0 文档中,只有在数据已经插入时才给出索引一次图表的方法。 但是在generate-modern.groovy 文件中here
    我们看到索引是在创建顶点之前完成的,这似乎是合理的。但是,当我尝试使用 buildMixedIndex 时,我无法做到这一点,因为它正在抛出我

    非法参数异常:未知的外部索引后端搜索

我的方法是

def location = mgmt.makeVertexLabel("location").make()
def displayName = mgmt.makePropertyKey("displayName").dataType(String.class).cardinality(Cardinality.SINGLE).make()
def shortName = mgmt.makePropertyKey("shortName").dataType(String.class).cardinality(Cardinality.SINGLE).make()
def description = mgmt.makePropertyKey("description").dataType(String.class).cardinality(Cardinality.SINGLE).make()
def latitude = mgmt.makePropertyKey("latitude").dataType(String.class).cardinality(Cardinality.SINGLE).make()
def longitude = mgmt.makePropertyKey("longitude").dataType(String.class).cardinality(Cardinality.SINGLE).make()

def locationByName = mgmt.buildIndex("displayNameAndShortNameAndDescriptionAndLatitudeAndLongitude", Vertex.class).addKey(displayName).addKey(shortName).addKey(description)
.addKey(latitude).addKey(longitude).indexOnly(location).buildMixedIndex('search')

我哪里弄错了?

【问题讨论】:

    标签: gremlin titan tinkerpop3 janusgraph


    【解决方案1】:
    1. 如果该查询需要很长时间,则问题可能是它访问了太多元素或陷入了无限循环。现有的 JanusGraph/Titan 索引对此无济于事。您已经通过 id g.V(vertexId) 进行了直接顶点查找,并且查询的其余部分正在从该顶点遍历邻域。我建议使用边缘标签,即out('friends'),来限制您访问的边缘数量。您还可以使用simplePath() 来消除循环路径。您还可以使用times()until() 来限制使用repeat() 步骤循环的次数。

    2. 您引用的配置示例仅使用复合索引,不需要索引后端。

    Mixed indexes 需要配置索引后端,Elasticsearch、Lucene 或 Solr。选择其中之一,然后确保在初始化图形时传递正确的配置属性。您可以在 conf 目录中的分发 zip 文件中找到几个示例。例如,在janusgraph-cassandra-es.properties 中,您会发现:

    index.search.backend=elasticsearch
    index.search.hostname=127.0.0.1
    index.search.elasticsearch.client-only=true
    

    其中index.X.backend 中的search 是您必须传递给buildMixedIndex(X) 的所选索引配置名称。

    【讨论】:

      【解决方案2】:

      这里是an answer。 复合索引和混合索引都仅适用于第一级 gremlin 查询,不适用于第二级。二级查询需要以顶点为中心的索引。

      【讨论】:

        猜你喜欢
        • 2018-01-04
        • 2015-10-01
        • 2013-04-01
        • 2017-03-27
        • 1970-01-01
        • 1970-01-01
        • 2012-10-29
        • 2015-04-26
        • 1970-01-01
        相关资源
        最近更新 更多