首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >优化超大数据集的neo4j循环查询

优化超大数据集的neo4j循环查询
EN

Stack Overflow用户
提问于 2016-02-02 01:09:53
回答 1查看 371关注 0票数 1

我正在试图弄清楚如何在一个非常大的数据集上优化cypher查询。我在找同城的二级或三级朋友。我当前的cypher查询是,运行时间超过1分钟:

代码语言:javascript
复制
match (n:User {id: 123})-[:LIVES_IN]->()<-[:LIVES_IN]-(u:User), (n)-[:FRIENDS_WITH*2..3]-(u) WHERE u.age >= 20 AND u.age <= 36 return u limit 100

大约有500K个用户节点和500M个FRIENDS_WITH关系。我已经有了id和age属性的索引。查询似乎被FRIENDS_WITH要求卡住了。有没有办法以不同的方式考虑这一点,或者优化cypher以使其实时(即最大时间1-2秒)?

以下是查询的配置文件:

谢谢。

EN

回答 1

Stack Overflow用户

发布于 2016-02-02 01:46:04

为标签用户的id属性创建索引:

代码语言:javascript
复制
CREATE INDEX ON :User(id)

有关更多信息,请参见架构索引文档http://neo4j.com/docs/stable/query-schema-index.html

如果这不能帮助您添加PROFILE查询的结果,我们也许可以为您提供更多帮助

代码语言:javascript
复制
PROFILE MATCH ... rest of your query

另外,尝试用以下方式重写查询也是值得的:

代码语言:javascript
复制
MATCH (n:User {id: 123})-[:LIVES_IN]->()<-[:LIVES_IN]-(u:User),
(n)-[:FRIENDS_WITH*2..3]-(u)
WHERE u.age >= 20 AND u.age <= 36 
return u limit 100
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35136302

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档