Saturday, February 25, 2012

Working with Neo4J REST API


I have several questions?



How can i query the node by its property? I see only to query by node id.



And how can I get, for example all friends and unconfirmed friends of the node? At the moment I can do that only by querying the all relationships of the node, and iterate over it by checking the property of each relationship.



My idea as the following: a node has parameter - id (userID), relationship has properties - directions - FROM_ME or TO_ME, status - CONFIRMED, UNCONFIRMED. All the quries are performed in REST API in Java.



How can I do that in the simple way like in SQL, f.e., SELECT friends WHERE friend_id = 1?



References to some tutorials with the solutions and techniques of such questions qould be appreciated

1 comment:

  1. To answer your first question, you can use indexes to quickly find nodes by a property on the node. Docs for REST here: http://docs.neo4j.org/chunked/milestone/rest-api-indexes.html

    For the second question, Cypher query language makes it easy to perform these types of queries. Here is an example that gets all users that are connected to a given user via a FRIEND relationship where the "status" property of the relationship is "confirmed":

    START user=node(123)
    MATCH user-[r:FRIEND]-friend
    WHERE r.status="confirmed"
    RETURN friend


    You can also add constraints on the direction of the relationship and chain multiple relationships together in a path to find friends-of-friends, etc.

    Here are the Cypher docs: http://docs.neo4j.org/chunked/milestone/cypher-query-lang.html

    Here are the docs on making Cypher queries via the REST API: http://docs.neo4j.org/chunked/milestone/rest-api-cypher.html

    ReplyDelete