gremlin - Gremlin 查找具有给定值的“任何”属性的所有顶点
问题描述
我的图表中的属性是动态的。这意味着,顶点上可以有任意数量的属性。这也意味着,当我进行搜索时,我将不知道要查找什么属性值。是否可以在 gremlin 中查询图形以查找具有给定值的任何属性的所有顶点。
例如,withname
和desc
as 属性。如果传入的搜索请求是“测试”,则查询将是g.V().has('name', 'test').or().has('desc', 'test')
. 当我不知道存在哪些属性时,如何实现类似的功能?我需要能够搜索所有属性并检查这些属性中是否有任何值是“测试”
解决方案
您可以使用以下语法执行此操作:
g.V().properties().hasValue('test')
但是,对于任何大小的数据集,我希望这是一个非常缓慢的遍历,因为它相当于询问 RDBMS“在任何表中的任何列中查找值等于'test'的任何单元格”。如果这是一个高频请求,我建议查看重构图模型或使用针对搜索优化的数据库,例如 Elasticsearch。
推荐阅读
- azure - 如何在 azure container create 中传递容器级参数
- python - 循环中的字符串连接恰好在左侧。为什么?
- mysql - 鉴于新表将用于完全不同的目的,我是否应该创建一个与现有表具有相同结构的单独表?
- javascript - 我似乎无法克隆一个数组,而一个数组的变化不会反映在另一个数组中。我试过 Object.assign, slice, Array,from, 都无济于事
- laravel - php artisan schedule:run => 没有准备好运行的预定命令
- javascript - 为什么 $_FILES[] 总是空的?
- javascript - 如何使用 .forEach 循环并使用 DOM 进行更改
- reactjs - 如何在 React 中美化动态代码片段?
- php - Laravel:每个会话允许单用户登录
- c - 每行打印输入一个字