我从http://docs.neo4j.org/chunked/snapshot/rest-api-traverse.html阅读了wiki api 检查我的代码,我可以通过Traversals找到最短的n个路径,并且可以找到与索引相关的节点或关系。但我的项目有300M节点,当我通过Traversals找到最短的n个路径时,像retionship数据属性名称包含'hi',如果我使用neo4j的fiter方法,它真的很慢,我想使用index(我创建它!),代码像:
{
"order" : "breadth_first",
"return_filter" : {
"body" : "position.endNode().getProperty('name').toLowerCase().contains('t')",
"language" : "javascript"
},
"prune_evaluator" : {
"body" : "position.length() > 10",
"language" : "javascript"
},
"uniqueness" : "node_global",
"relationships" : [ {
"direction" : "all",
"type" : "knows"
}, {
"direction" : "all",
"type" : "loves"
} ],
"max_depth" : 3
}
我想:
{
"order" : "breadth_first",
"return_filter" : {
"body" : "position.endNode().name:*hi*",
"language" : "javascript"
},
"prune_evaluator" : {
"body" : "position.length() > 10",
"language" : "javascript"
},
"uniqueness" : "node_global",
"relationships" : [ {
"direction" : "all",
"type" : "knows"
}, {
"direction" : "all",
"type" : "loves"
} ],
"max_depth" : 3
}
有人可以帮助我吗?
答案 0 :(得分:0)
第一次是慢还是连续请求同样慢?在第一次为该节点/关系请求任何属性时,每个节点/关系都会加载属性,并且您可能会看到性能受到影响。
我认为使用索引可以帮助尚未加载的节点,但不会。在休息时执行此操作可能会非常棘手,因为您必须事先进行索引查找并将该列表传递给评估程序。但这不会扩大规模。相反可以为此写一个扩展名吗?