如何在Neo4j中优先过滤

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在Neo4j中优先过滤相关的知识,希望对你有一定的参考价值。

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

这是我的查询:

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

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

答案

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

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

以上是关于如何在Neo4j中优先过滤的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Neo4j Cypher 上制作包含过滤器的字符串

Neo4j中的图形算法:15种不同的图形算法及其功能

Neo4j中的图形算法:15种不同的图形算法及其功能

Neo4j 第八篇:投射和过滤

为什么我不能在此片段中生成唯一对象数组?

如何在neo4j Cypher中获取列表的子集