如何在Neo4j中优先过滤

问题描述 投票:0回答:1

我正在进行查询优化,我需要优先考虑我的过滤器,即应用这些过滤器的顺序。例如,如果我有一个属性prop1和一个关系rel1,我需要首先在prop1上应用过滤器然后rel2,那我该怎么办?

这是我的查询:

MATCH (e:Entity)
where e.prop1 > constant1
and (e)-[:rel1]->(:Entity2)
return e.entity_id

我需要这个,因为如果我首先应用prop1过滤器,那么搜索空间将大幅减少,这应该优化性能。有人可以帮帮我吗?

neo4j cypher
1个回答
1
投票

约束按您指定的顺序应用。在你的情况下,首先执行e.prop1 > constant1

由于您正在使用和AND运算符,当第一次测试(AND左侧的测试)失败时,第二次测试不会执行。请记住,当使用AND时,两个条件(左和右)应该是true。否则,AND表达式将是false。这样,当第一个失败时,不需要执行第二个约束。

© www.soinside.com 2019 - 2024. All rights reserved.