neo4j图形数据库的python绑定

neo4p的Python项目详细描述


neo4j python绑定
==

:概要:从python代码访问neo4j图形数据库功能


仅在osx雪豹、python 2.6上使用neo4j 1.3测试




注意
----
这是一项正在进行的工作。如果本文档中的内容失败或看起来不正确,请告诉我。


非常感谢。




installation
----


install jcc:

$easy_install jcc

下载并解压缩neo4j到某个地方(http://neo4j.org/download/)
目前只有1.3版支持Ne4JJHOLD环境变量到NeN4J下载:
出口$NE4JJHOL/~/NeX4J社区-1.3BR/> BR/>< BR/>进入NY4PY包目录:
B/>目录/////Read:BR/> BR/>用JCC构建C++包装:
BR/> $Pythonsetup.py build

安装(可能需要sudo ness):

$python setup.py install



运行一些测试:
$python test/test_graph_core.py

希望没有错误!如果有,请给我回溯:)



Getting Started
----


>最简单的方法是使用"全局"图。
>;>from neo4py import neo
>;>gdb=neo.init_graph('test-graph.neo4j')
>;
使用
>;gdb=neo.get戋graph()



transactions
----


>事务的处理方式不同于neo4j.py

>;tx,created=gdb.get戋tx()

如果created为true,则为此作用域在完成时提交事务的责任:

>;>tx.finish(true)success-提交对数据库的更改
>;>tx.finish(false)failure-回滚更改

>;>tx.success()或.failure()
>;>tx.finish()这里传递的是true还是false并不重要--它将被忽略




关系和属性(有趣的东西的开始)
----------

**并非所有语法都与neo4j.py兼容**




创建节点::(必须在事务中!)

>;>;n=gdb.node()



访问属性:

>;>value=n['key']\"默认值")

>;>;对于prop in n:do廑something(prop)
>;>;对于prop,value in n.iteritems():do廑something(prop,value)廑循环节点属性

>;>;更多props={"name":"jack","occupation":"pilot"}
>;>;n1.更新(更多的道具)
>;>n2.更新(name="sarah",ocposition="宇航员")



>;>n.id节点id




n1.relationships("likes")(n2,how"much="lot")当
关系的名称存储在变量中时使用。
尽管此语法可能会更改…看起来很模糊?


相对起点起点节点(n1)
>;>>相对终点终点节点(n2)

>>>>相对类型
"知道"







"关系"属性上的其他功能是可能的。像get all一样,
传入或传出关系(键入或不键入):

>;>rels=list(n1.relationships())


>;>rels=list(n1.relationships("knows","likes").incoming)

>;>rel=n1.knows.outgoing.single



遍历
----


正在进行。非常类似于neo4j.py
请参见tests(neo4py/testing/graph_core.py)

>neo4py.core import direction
>>neo4py.traversal import traverser,stop,returnable,order

class mytraverser(traverser):
types=[direction.incoming.knows,方向:无方向性。喜欢的是:< =:=,可以使用一个Python方法,它主要是未经测试的。更快)
order=order.depth_first



索引
----


请参见测试(neo4py/testing/graph_core.py)

>;>;节点idx=gdb.node_index.create("我的节点索引",fulltext=true)创建新的全文索引
将失败索引,名称已存在
>;>节点idx=gdb。节点索引["我的节点索引"]检索已创建的索引

>;>gdb中的"该索引"。节点索引测试索引是否存在
false
>>>>gdb中的"我的节点索引"。节点索引
true

>>>rel廑idx=gdb.rel廑index.create("关系索引")的工作原理相同,但对于关系


>>>>节点idx['name',"jack"]=n1
>;节点idx['name',"jack"]=n500个节点在"name"=>;"jack"

>;>;nodes=list(node懔idx['name','jack'])下索引;返回两个节点上的迭代器(使用此语法精确匹配)

>;>;nodes=list(node懔idx.simple懔query('name','jack')按单键/值进行全文查询
>;>;nodes=list(node_idx.query('name:jack'))运行lucene query(支持多个键)


关系索引相同,但有两个额外选项(请参阅neo4j文档):
>;>;rels=list(rel_idx.simple_query('key',value',start_node=n1)限制查询,以提高效率(也可以是结束节点)
>;>rels=list(rel廑idx.query('key:value',结束节点=some廑other廑node)



欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java如何向第二个组合框模型项添加数组值从第一个组合框所选项获取数组名称?   使用Java与WebSphere的SSL握手错误   eclipse线程“main”Java中的第一个Java程序异常。lang.NoClassDefFoundError   java将Javafx应用作为Web应用移植的最佳方式   IDE的java右JVM文件夹   java如何在基本适配器中停止文本到语音   java If block使用substring和equals方法以假值执行   在本例中,如何在java中返回多个值?   java第二个主类在maven构建期间覆盖第一个主类   如何在java中设置运行时ArrayList的泛型类型?   java从主机读取文件