首页 > 解决方案 > 如何在 Janusgraph 中进化模式?

问题描述

我将电影和用户数据上传到janusgraph,最初我在movieId上建立了索引,但后来我意识到我也需要为电影标题建立索引。我需要根据电影标题进行查询并且没有索引电影 id,它给了我警告“查询需要遍历所有顶点”。所以,我添加了代码:

JanusGraphManagement mgmt = graph.openManagement();
PropertyKey title = mgmt.getPropertyKey("title");
JanusGraphManagement.IndexBuilder movieNameIndexBuilder = mgmt.buildIndex("title", Vertex.class)
            .addKey(title);
movieNameIndexBuilder.unique();
JanusGraphIndex movieTitleIndex = movieNameIndexBuilder.buildCompositeIndex();
mgmt.setConsistency(movieTitleIndex, ConsistencyModifier.LOCK);
mgmt.commit(); 

当我查询电影标题时,我仍然收到相同的警告“查询需要遍历所有顶点”。

谢谢

标签: javagremlinjanusgraph

解决方案


从 Janusgraph gitter 频道得到解决方案:

如果索引属性键是在以前的管理事务中创建的,则索引不会立即可用,因为 JanusGraph 现在可能需要重新索引现有数据。这是您必须手动触发的过程。您可以在文档的索引管理一章中阅读有关此内容的更多信息。这就是为什么建议尽可能在创建属性键的同一事务中创建所有索引


推荐阅读