考虑两个顶点,一个名为Crash,另一个名为GenericCarModel。 Crash顶点有一个名为carModel的属性,它是一个String。 GenericCarModel顶点有一个名为name的属性,它已被索引为GenericCarModel.nameHash。
我有兴趣找到存在于Crash Vertex中但尚未通过比较名称添加到GenericCarModel中的carModel。基本上填充了这个维恩图的一部分:
同样假设在这个特定的例子中,我们在GenericCarModel中有比崩溃的CarModel更多的模型。
我尝试了以下方法:
SELECT FROM Crash WHERE $all.size() = 0
LET $all =
(SELECT FROM GenericCarModel
WHERE name = $parent.$current.carModel LIMIT 1)
这种方法有效,但速度很慢。让我们使用索引:
SELECT FROM Crash WHERE $all.size() = 0
LET $all =
(SELECT FROM index:CarModel.nameHash
WHERE key = $parent.$current.carModel LIMIT 1)
这不起作用。
所以有两个问题,为什么指数方法不起作用?我的方法似乎不是最优的,你会如何处理它?</ p>
答案 0 :(得分:0)
听起来你忽略了graphdb的图形功能!我会改造这个,以便你有:
当发生错误时,您可以使用详细信息创建“事件”顶点。然后,您可以从事件到汽车创建一个崩溃边缘。