作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我编写了一个快速脚本,通过 Neo4j 的遍历框架 REST API 运行遍历查询:
from py2neo import neo4j
import requests
import json
dbURI = 'http://localhost:7474/db/data/'
def graphTraversal (nodeId):
returnType = 'path'
payload = {
'order': 'breadth_first',
'uniqueness': 'node_global',
'relationships': [{
'direction': 'all',
'type': 'associatedMusicalArtist'
}],
'max_depth': 2
}
payload = json.dumps(payload)
headers = {
'Accept': 'application/json; charset=UTF-8',
'Content-Type': 'application/json'
}
uri = dbURI + '/node/' + nodeId + '/traverse/' + returnType
print '\n> Traversal of ' + uri + ' ...'
res = requests.post(uri, data=payload, headers=headers)
print res.text
return res.json();
def getNodeByUri (db, key, value):
return db.get_indexed_node('nodeIdx', key, value)
def getNodeId (node):
return str(node._id)
def main ():
db = neo4j.GraphDatabaseService(dbURI)
node = getNodeByUri(db, '__URI__', 'http://dbpedia.org/resource/Jimi_Hendrix')
nodeId = getNodeId(node)
rels = graphTraversal(nodeId)
if __name__ == '__main__':
main()
代码运行良好,但我有一个问题:
我知道 Java 驱动程序允许这样做,但对于 Python,文档并不清楚如何做到这一点。
提前致谢!
编辑:这是 Neo4j's traversal framework REST API 文档的链接我正在关注。
最佳答案
没有直接的方法可以做到这一点,遍历端点都是单节点。
您可以使用 Batch API 来完成此操作,在单个 HTTP 请求中发送大量遍历请求。看看这里:
http://docs.neo4j.org/chunked/stable/rest-api-batch-ops.html
但是
对于您正在运行的遍历,您可以轻松地用 Cypher 表达它,然后您可以给它多个起点,如下所示:
START n=node(1,2,3,4,5) MATCH (n)-[:associatedMusicalArtist*0..2]-(other) RETURN other
然后您可以将其发送到事务端点:
http://docs.neo4j.org/chunked/stable/rest-api-transactional.html
关于python - 多个种子节点的遍历,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23519067/
我是一名优秀的程序员,十分优秀!