java - 如何在 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();
当我查询电影标题时,我仍然收到相同的警告“查询需要遍历所有顶点”。
谢谢
解决方案
从 Janusgraph gitter 频道得到解决方案:
如果索引属性键是在以前的管理事务中创建的,则索引不会立即可用,因为 JanusGraph 现在可能需要重新索引现有数据。这是您必须手动触发的过程。您可以在文档的索引管理一章中阅读有关此内容的更多信息。这就是为什么建议尽可能在创建属性键的同一事务中创建所有索引
推荐阅读
- android - 在真正的 android 设备上找不到 res/color/filename.xml 资源文件
- linux - 是否存在用于 stdin/stdout 的 Linux 应用程序,如果在读/写时出现问题,则通过环形缓冲区将最后一个数据输出到转储文件
- javascript - 在 ngFor 中使用 Angular 9 Slice Pipe
- angular - mat-list 显示多个项目
- javascript - vue反向数据绑定
- c++ - 数据竞争检测器 - OPENMP
- multithreading - Does TCB(thread control block) is created even if the process is composed of only on thread(the process itself)?
- javascript - Ngx Image Cropper 变换比例不平滑
- jquery - 使用第三方分页时出现 jquery 脚本问题
- amazon-web-services - 如何重用现有架构并为现有 AWS AppSync Graphql 端点的查询和突变生成代码?