首页 > 解决方案 > Gremlin 查找具有给定值的“任何”属性的所有顶点

问题描述

我的图表中的属性是动态的。这意味着,顶点上可以有任意数量的属性。这也意味着,当我进行搜索时,我将不知道要查找什么属性值。是否可以在 gremlin 中查询图形以查找具有给定值的任何属性的所有顶点。

例如,withnamedescas 属性。如果传入的搜索请求是“测试”,则查询将是g.V().has('name', 'test').or().has('desc', 'test'). 当我不知道存在哪些属性时,如何实现类似的功能?我需要能够搜索所有属性并检查这些属性中是否有任何值是“测试”

标签: gremlingraph-databases

解决方案


您可以使用以下语法执行此操作:

g.V().properties().hasValue('test')

但是,对于任何大小的数据集,我希望这是一个非常缓慢的遍历,因为它相当于询问 RDBMS“在任何表中的任何列中查找值等于'test'的任何单元格”。如果这是一个高频请求,我建议查看重构图模型或使用针对搜索优化的数据库,例如 Elasticsearch。


推荐阅读