An index can contain either nodes or relationships.
Note | |
---|---|
To create an index with default configuration, simply start using it by adding nodes/relationships to it. It will then be automatically created for you. |
What default configuration means depends on how you have configured your database. If you haven’t changed any indexing configuration, it means the indexes will be using a Lucene-based backend.
All the examples below show you how to do operations on node indexes, but all of them are just as applicable to relationship indexes. Simple change the "node" part of the URL to "relationship".
If you want to customize the index settings, see Section 6.7.2, “Create node index with configuration”.
Note | |
---|---|
Instead of creating the index this way, you can simply start to use it, and it will be created automatically. |
Final Graph:
Example request
POST
http://0.0.0.0:7474/db/data/index/node/
Accept:
application/json
Content-Type:
application/json
{ "name" : "favorites" }
Example response
201:
Created
Content-Type:
application/json
Location:
http://0.0.0.0:7474/db/data/index/node/favorites/
{ "template" : "http://0.0.0.0:7474/db/data/index/node/favorites/{key}/{value}" }
This request is only necessary if you want to customize the index settings. If you are happy with the defaults, you can just start indexing nodes/relationships, as non-existent indexes will automatically be created as you do. See Section 7.10, “Configuration and fulltext indexes” for more information on index configuration.
Final Graph:
Example request
POST
http://0.0.0.0:7474/db/data/index/node/
Accept:
application/json
Content-Type:
application/json
{"name":"fulltext", "config":{"type":"fulltext","provider":"lucene"}}
Example response
201:
Created
Content-Type:
application/json
Location:
http://0.0.0.0:7474/db/data/index/node/fulltext/
{ "template" : "http://0.0.0.0:7474/db/data/index/node/fulltext/{key}/{value}", "provider" : "lucene", "type" : "fulltext" }
Final Graph:
Example request
DELETE
http://0.0.0.0:7474/db/data/index/node/kvnode
Accept:
application/json
Example response
204:
No Content
Final Graph:
Example request
GET
http://0.0.0.0:7474/db/data/index/node/
Accept:
application/json
Example response
200:
OK
Content-Type:
application/json
{ "favorites" : { "template" : "http://0.0.0.0:7474/db/data/index/node/favorites/{key}/{value}", "provider" : "lucene", "type" : "exact" } }
This is an example covering the case where no node index exists.
Final Graph:
Example request
GET
http://0.0.0.0:7474/db/data/index/node/
Accept:
application/json
Example response
204:
No Content
Associates a node with the given key/value pair in the given index.
Note | |
---|---|
Spaces in the URI have to be escaped. |
Caution | |
---|---|
This does not overwrite previous entries. If you index the same key/value/item combination twice, two index entries are created. To do update-type operations, you need to delete the old entry before adding a new one. |
Final Graph:
Example request
POST
http://0.0.0.0:7474/db/data/index/node/favorites/key/the%20value
Accept:
application/json
Content-Type:
application/json
"http://0.0.0.0:7474/db/data/node/0"
Example response
201:
Created
Content-Type:
application/json
Location:
http://0.0.0.0:7474/db/data/index/node/favorites/key/the%20value/0
{ "indexed" : "http://0.0.0.0:7474/db/data/index/node/favorites/key/the%20value/0", "outgoing_relationships" : "http://0.0.0.0:7474/db/data/node/0/relationships/out", "data" : { }, "traverse" : "http://0.0.0.0:7474/db/data/node/0/traverse/{returnType}", "all_typed_relationships" : "http://0.0.0.0:7474/db/data/node/0/relationships/all/{-list|&|types}", "property" : "http://0.0.0.0:7474/db/data/node/0/properties/{key}", "self" : "http://0.0.0.0:7474/db/data/node/0", "outgoing_typed_relationships" : "http://0.0.0.0:7474/db/data/node/0/relationships/out/{-list|&|types}", "properties" : "http://0.0.0.0:7474/db/data/node/0/properties", "incoming_relationships" : "http://0.0.0.0:7474/db/data/node/0/relationships/in", "extensions" : { }, "create_relationship" : "http://0.0.0.0:7474/db/data/node/0/relationships", "paged_traverse" : "http://0.0.0.0:7474/db/data/node/0/paged/traverse/{returnType}{?pageSize,leaseTime}", "all_relationships" : "http://0.0.0.0:7474/db/data/node/0/relationships/all", "incoming_typed_relationships" : "http://0.0.0.0:7474/db/data/node/0/relationships/in/{-list|&|types}" }
Final Graph:
Example request
DELETE
http://0.0.0.0:7474/db/data/index/node/kvnode/8
Accept:
application/json
Example response
204:
No Content
Final Graph:
Example request
DELETE
http://0.0.0.0:7474/db/data/index/node/kvnode/kvkey2/9
Accept:
application/json
Example response
204:
No Content
Final Graph:
Example request
DELETE
http://0.0.0.0:7474/db/data/index/node/kvnode/kvkey1/value1/10
Accept:
application/json
Example response
204:
No Content
Note | |
---|---|
Spaces in the URI have to be escaped. |
Final Graph:
Example request
GET
http://0.0.0.0:7474/db/data/index/node/favorites/key/the%20value
Accept:
application/json
Example response
200:
OK
Content-Type:
application/json
[ { "indexed" : "http://0.0.0.0:7474/db/data/index/node/favorites/key/the%20value/0", "outgoing_relationships" : "http://0.0.0.0:7474/db/data/node/0/relationships/out", "data" : { }, "traverse" : "http://0.0.0.0:7474/db/data/node/0/traverse/{returnType}", "all_typed_relationships" : "http://0.0.0.0:7474/db/data/node/0/relationships/all/{-list|&|types}", "property" : "http://0.0.0.0:7474/db/data/node/0/properties/{key}", "self" : "http://0.0.0.0:7474/db/data/node/0", "outgoing_typed_relationships" : "http://0.0.0.0:7474/db/data/node/0/relationships/out/{-list|&|types}", "properties" : "http://0.0.0.0:7474/db/data/node/0/properties", "incoming_relationships" : "http://0.0.0.0:7474/db/data/node/0/relationships/in", "extensions" : { }, "create_relationship" : "http://0.0.0.0:7474/db/data/node/0/relationships", "paged_traverse" : "http://0.0.0.0:7474/db/data/node/0/paged/traverse/{returnType}{?pageSize,leaseTime}", "all_relationships" : "http://0.0.0.0:7474/db/data/node/0/relationships/all", "incoming_typed_relationships" : "http://0.0.0.0:7474/db/data/node/0/relationships/in/{-list|&|types}" } ]
The query language used here depends on what type of index you are querying. The default index type is Lucene, in which case you should use the Lucene query language here. Below and Example of a fuzzy search over multiple keys.
See: http://lucene.apache.org/java/3_1_0/queryparsersyntax.html
Final Graph:
Example request
GET
http://0.0.0.0:7474/db/data/index/node/bobTheIndex?query=Name:Build~0.1%20AND%20Gender:Male
Accept:
application/json
Example response
200:
OK
Content-Type:
application/json
[ { "outgoing_relationships" : "http://0.0.0.0:7474/db/data/node/3/relationships/out", "data" : { "Name" : "Builder" }, "traverse" : "http://0.0.0.0:7474/db/data/node/3/traverse/{returnType}", "all_typed_relationships" : "http://0.0.0.0:7474/db/data/node/3/relationships/all/{-list|&|types}", "property" : "http://0.0.0.0:7474/db/data/node/3/properties/{key}", "self" : "http://0.0.0.0:7474/db/data/node/3", "outgoing_typed_relationships" : "http://0.0.0.0:7474/db/data/node/3/relationships/out/{-list|&|types}", "properties" : "http://0.0.0.0:7474/db/data/node/3/properties", "incoming_relationships" : "http://0.0.0.0:7474/db/data/node/3/relationships/in", "extensions" : { }, "create_relationship" : "http://0.0.0.0:7474/db/data/node/3/relationships", "paged_traverse" : "http://0.0.0.0:7474/db/data/node/3/paged/traverse/{returnType}{?pageSize,leaseTime}", "all_relationships" : "http://0.0.0.0:7474/db/data/node/3/relationships/all", "incoming_typed_relationships" : "http://0.0.0.0:7474/db/data/node/3/relationships/in/{-list|&|types}" } ]
Copyright © 2011 Neo Technology