node.js - 没有索引值如何遍历?
问题描述
我有一个场景,我想查询获取所有没有特定属性键和值的顶点。所以,我尝试的是
g.V().hasLabel('Persona').hasNot('isTempDob').count()
导致
Could not find a suitable index to answer graph query and graph scans are disabled: [(~label = Persona)]:VERTEX
因此,我按照文档(例如获取标签名称为Persona的顶点数)尝试了更简单的方法。查询是
g.V('Persona').count()
导致
0
我不知道为什么没有任何索引值就无法遍历?任何帮助将不胜感激。在此先感谢。
解决方案
也许它只是一个错误类型但g.V('Persona').count()
不搜索标签 - 它查找具有唯一标识符“Persona”的顶点。结果我怀疑“0”的答案是正确的。
我不知道为什么没有任何索引值就无法遍历?
JanusGraph(和其他图形系统)防止没有索引值的遍历作为护栏,以防止用户意外执行长时间运行的查询。如果您有一个只有数千个顶点的小图,那么您可能会发现此功能很烦人,但是当您有数十亿个顶点时,它可能是一个很好的帮手,因为您在那里编写的查询将花费数小时和数小时完成并且不会是获得该答案的推荐方法。如果您正在对图中的所有顶点进行全局扫描,那么您应该在 Spark 上执行 Gremlin 以享受它的并行处理能力,将这些小时和数小时变成几分钟。
回到小图的情况,您可以通过配置 JanusGraph 来暂时禁用护栏,query.force-index=false
以允许查询执行。这应该允许您的查询在没有该错误/警告的情况下工作。
推荐阅读
- oracle - Oracle Forms - 根据查询数据启用/禁用表格列表项行
- python - Python - 如果部署到两个不同的路径,命名空间冲突
- python - Python 3 - 你如何告诉 pipenv 使用 python 3 而不是 python 2?
- python - Python 错误:无法导入名称 cross_validation
- reactjs - 如何使用状态更新创建事件(通过 getDerivedStateFromProps)
- java - IntelliJ 解析配置文件的依赖关系
- node.js - 如何根据定义的 mongoose 模式使用带有验证器的“node-mongodb-native”创建 mongodb 集合?
- amazon-web-services - 存储桶策略中的条件以仅允许特定服务
- regex - 如何在 IIS 上配置一个 URL 重写/代理规则?
- python - 导入包含列标签的每个值的数据