如何解决Neo4j - 正确添加索引
我有一个有点复杂的查询来检索 Post
类型的节点。查询看起来像这样。
MATCH (t:Tag) WHERE t.name='CAT' with t
MATCH (t)-[:HAS_TAG]-(p:Post) WHERE p.approval <> 2 AND (p.blocked= false OR p.blocked IS NULL)
with p where p.property1 >= 10 AND p.property1 < 3000000000
with p where not exists(p.property2) or (p.property2 >= 100 and p.property2 < 43000)
with p where not exists(p.property3) or (p.property3 >= 100 and p.property3 < 43000)
with p where not exists(p.property4) or (p.property4 >= 100 and p.property4 < 43000)
with p ORDER BY p.property5 DESC SKIP 0 LIMIT 10
RETURN p;
我已经为 name
类型的 Tag
属性添加了索引。因此,当我运行配置文件查询时,它表明它在 name
属性上使用该索引。
现在我想使用索引来优化这个查询的其他部分。我不知道该怎么做,因为我使用了 with
关键字来分隔过滤部分。
我是否应该像这样创建一个复合索引:(property1,property2,property3,property4,approval,blocked)
或
我是否应该为每个属性创建单独的索引,因为它们由 with
短语分隔?.
解决方法
由于您没有对不同的属性进行 AND 运算,因此您需要为正在过滤的每个属性创建一个索引。
这个 blog post 可能有用。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。