【发布时间】:2015-09-25 03:32:22
【问题描述】:
我有一个数据模型,我想根据Graphgist 中发布的文章进行粗略建模。
我很好奇 WHERE 子句的性能,如果给定的 2 个节点集在它们之间具有大量关系,每个边缘上定义了“from”和“to”参数.当您进行这样的匹配查询时,假设您有 100 个 SELLS 关系,Neo4J 如何处理根据 WHERE 标准将边缘过滤到重要的边缘的性能:
MATCH (s:Shop{shop_id:1})-[r1:SELLS]->(p:Product)
WHERE (r1.from <= 1391558400000 AND r1.to > 1391558400000)
MATCH (p)-[r2:STATE]->(ps:ProductState)
WHERE (r2.from <= 1391558400000 AND r2.to > 1391558400000)
RETURN p.product_id AS productId,
ps.name AS product,
ps.price AS price
ORDER BY price DESC
我还没有找到直接在边上索引属性的方法,所以我假设查询优化器可以处理这样的事情,或者它只是逐字遍历边数组并找到边那场比赛。
【问题讨论】: