我正在使用新4j导入工具将一个大数据集(远超过1000万个节点)导入到neo4j中。导入我的数据之后,我对它运行了几个查询。其中一个查询执行得非常糟糕。我尽可能地优化了它(分析、使用关系类型、为多核支持进行拆分等等)。
但是这需要太长时间,所以我的想法是告诉neo4j使用using子句从特定类型的节点开始。然后,我可以检查我的数据库点击是如何变化的,并可能使它工作。不过,现在我的数据库没有索引。
当我编写完所有需要的查询时,我想创建索引,似乎我已经开始使用它们了。
,我想知道是否可以在批量导入过程中创建这些索引,。这对我来说似乎是个好办法。我该怎么做?
另外,我想知道是否有可能编写一个语句,为我的每个节点上存在的属性创建索引(让我们称之为"type")。
CREATE INDEX ON :(type);不起作用(标签丢失了,但我想省略)
发布于 2017-01-20 15:11:12
索引在标签+属性上。您需要在导入之后和开始优化查询之前立即进行索引。您的查询将用于查找起点的任何内容都应该进行索引(user_id、object_id等),并且可能是用于范围查询的任何日期或属性(modified_on、权重等)。
CREATE INDEX ON :Label(property)Cypher查询是单线程的,所以我不知道你所说的多核支持是什么意思。你看过什么,有链接吗?您可以使用多线程Neo4j,但此时必须手动执行。请参阅https://maxdemarzi.com/2017/01/06/multi-threading-a-traversal/
大多数情况下,查询可以使用索引进行极大的优化,或者以不同的方式表示。但有时您需要重做您的模型以适应查询。看看https://maxdemarzi.com/2015/08/26/modeling-airline-flights-in-neo4j/,得到一些提示。
https://stackoverflow.com/questions/41762487
复制相似问题