<p>一个重要的概念是,<strong>索引是key/value/object三元组</strong>,其中对象要么是一个节点,要么是一个要索引的关系。在</p>
<p>创建和使用索引的步骤:</p>
<p>创建图形数据库rest客户机的实例。在</p>
<pre><code>from neo4jrestclient.client import GraphDatabase
gdb = GraphDatabase("http://localhost:7474/db/data/")
</code></pre>
<p>创建节点或关系索引(在此处创建节点索引)</p>
^{pr2}$
<p>向索引添加节点</p>
<pre><code>nelly = gdb.nodes.create(name='Nelly Furtado')
shakira = gdb.nodes.create(name='Shakira')
index['latin_genre'][nelly.get('name')] = nelly
index['latin_genre'][shakira.get('name')] = shakira
</code></pre>
<p>根据索引获取节点并进行进一步处理:</p>
<pre><code>for artist in index['latin_genre']['Shakira']:
print artist.get('name')
</code></pre>
<p>更多细节可以从<a href="http://docs.neo4j.org/chunked/stable/tools-webadmin.html" rel="nofollow">webadmin</a>中的注释中找到</p>
<blockquote>
<p>Neo4j has two types of indexes, node and relationship indexes. With
node indexes you index and find nodes, and with relationship indexes
you do the same for relationships.</p>
<p>Each index has a provider, which is the underlying implementation
handling that index. The default provider is lucene, but you can
create your own index provides if you like.</p>
<p>Neo4j indexes take key/value/object triplets ("object" being a node or
a relationship), it will index the key/value pair, and associate this
with the object provided. After you have indexed a set of
key/value/object triplets, you can query the index and get back
objects that where indexed with key/value pairs matching your query.</p>
<p>For instance, if you have "User" nodes in your database, and want to
rapidly find them by username or email, you could create a node index
named "Users", and for each user index username and email. With the
default lucene configuration, you can then search the "Users" index
with a query like: "username:bob OR email:bob@gmail.com".</p>
<p>You can use the data browser to query your indexes this way, the
syntax for the above query is "node:index:Users:username:bob OR
email:bob@gmail.com".</p>
</blockquote>