Posts Tagged ‘Graph DB’

Neo4j
—–
Graph Data base..

download :
———-
URL     : http://neo4j.com/download/
package  : neo4j-community-2.3.0-M01-unix.tar.gz

unZip :
——-

tar -xf neo4j-community-2.3.0-M01-unix.tar.gz

Change config values :
———————-

change server port values as per your needs

cat conf/neo4j-server.properties | grep port

#org.neo4j.server.webserver.port=7474   # —- default port
org.neo4j.server.webserver.port=7475    # —- changed by me
# Turn https-support on/off
# https port (for all data, administrative, and UI access)
#org.neo4j.server.webserver.https.port=7473 #—– default port
org.neo4j.server.webserver.https.port=7476  #—– changed by me

Start Server
————
NEO4J_HOME/bin/neo4j start

[ramisetty@cluster-01 neo4j-community-2.3.0-M01]$ bin/neo4j start
Starting Neo4j Server…WARNING: not changing user
process [20390]… waiting for server to be ready…….. OK.
http://localhost:7475/ is ready.

[ramisetty@cluster-01 neo4j-community-2.3.0-M01]$ tail -f  conf/neo4j-server.properties

#*****************************************************************
# Administration client configuration
#*****************************************************************

# location of the servers round-robin database directory. Possible values:
# – absolute path like /var/rrd
# – path relative to the server working directory like data/rrd
# – commented out, will default to the database data directory.
org.neo4j.server.webadmin.rrdb.location=data/rrd

Start Client Shell:
——————-

NEO4J_HOME/bin/neo4j-shell

[ramisetty@cluster-01 neo4j-community-2.3.0-M01]$ bin/neo4j-shell
Welcome to the Neo4j Shell! Enter ‘help’ for a list of commands
NOTE: Remote Neo4j graph database service ‘shell’ at port 1337

neo4j-sh (?)$ help
Available commands: alias begin cd commit create cypher dbinfo drop dump env explain export gsh help index jsh load ls man match merge mknode mkrel mv optional paths planner profile pwd return rm rmnode rmrel rollback runtime schema set start trav unwind using with
Use man for info about each command.
neo4j-sh (?)$

Create some data :
——————

# create Movie Nodes

CREATE (matrix:Movie { title:”The Matrix”,released:1997 })
CREATE (cloudAtlas:Movie { title:”Cloud Atlas”,released:2012 })
CREATE (forrestGump:Movie { title:”Forrest Gump”,released:1994 })

# create Person nodes

CREATE (keanu:Person { name:”Keanu Reeves”, born:1964 })
CREATE (robert:Person { name:”Robert Zemeckis”, born:1951 })
CREATE (tom:Person { name:”Tom Hanks”, born:1956 })

# create RELATIONs

CREATE (tom)-[:ACTED_IN { roles: [“Forrest”]}]->(forrestGump)
CREATE (tom)-[:ACTED_IN { roles: [‘Zachry’]}]->(cloudAtlas)
CREATE (robert)-[:DIRECTED]->(forrestGump)

In Shell
——–

neo4j-sh (?)$ CREATE (matrix:Movie { title:”The Matrix”,released:1997 })
> CREATE (cloudAtlas:Movie { title:”Cloud Atlas”,released:2012 })
> CREATE (forrestGump:Movie { title:”Forrest Gump”,released:1994 })
> ;
+——————-+
| No data returned. |
+——————-+
Nodes created: 3
Properties set: 6
Labels added: 3
1214 ms
neo4j-sh (?)$ CREATE (keanu:Person { name:”Keanu Reeves”, born:1964 })
> CREATE (robert:Person { name:”Robert Zemeckis”, born:1951 })
> CREATE (tom:Person { name:”Tom Hanks”, born:1956 })
> ;
+——————-+
| No data returned. |
+——————-+
Nodes created: 3
Properties set: 6
Labels added: 3
76 ms
neo4j-sh (?)$ CREATE (tom)-[:ACTED_IN { roles: [“Forrest”]}]->(forrestGump)
> CREATE (tom)-[:ACTED_IN { roles: [‘Zachry’]}]->(cloudAtlas)
> CREATE (robert)-[:DIRECTED]->(forrestGump)
> ;
+——————-+
| No data returned. |
+——————-+
Nodes created: 4
Relationships created: 3
Properties set: 2
117 ms
neo4j-sh (?)$

complex Query
—————-
neo4j-sh (?)$ MATCH (p:Person)
> RETURN p, p.name AS name, upper(p.name), coalesce(p.nickname,”n/a”) AS nickname, { name: p.name,
>   label:head(labels(p))} AS person;
+———————————————————————————————————————————————–+
| p                                         | name              | upper(p.name)     | nickname | person                                         |
+———————————————————————————————————————————————–+
| Node[3]{name:”Keanu Reeves”,born:1964}    | “Keanu Reeves”    | “KEANU REEVES”    | “n/a”    | {name -> “Keanu Reeves”, label -> “Person”}    |
| Node[4]{name:”Robert Zemeckis”,born:1951} | “Robert Zemeckis” | “ROBERT ZEMECKIS” | “n/a”    | {name -> “Robert Zemeckis”, label -> “Person”} |
| Node[5]{name:”Tom Hanks”,born:1956}       | “Tom Hanks”       | “TOM HANKS”       | “n/a”    | {name -> “Tom Hanks”, label -> “Person”}       |
+———————————————————————————————————————————————–+
3 rows
213 ms
neo4j-sh (?)$

Loading graph db from csv:
————————————–

[ramisetty@cluster-01 neo4j-community-2.3.0-M01]$ mkdir examples
[ramisetty@cluster-01 neo4j-community-2.3.0-M01]$ cd examples/
[ramisetty@cluster-01 examples]$ pwd
/home/ramisetty/vijay/neo4j/neo4j-community-2.3.0-M01/examples
[ramisetty@cluster-01 examples]$ vim movies.csv
[ramisetty@cluster-01 examples]$ vim persons.csv
[ramisetty@cluster-01 examples]$ vim roles.csv

[ramisetty@cluster-01 examples]$ cat movies.csv
id,title,country,year
1,Wall Street,USA,1987
2,The American President,USA,1995
3,The Shawshank Redemption,USA,1994

[ramisetty@cluster-01 examples]$ cat persons.csv
id,name
1,Charlie Sheen
2,Oliver Stone
3,Michael Douglas
4,Martin Sheen
5,Morgan Freeman

[ramisetty@cluster-01 examples]$ cat roles.csv
personId,movieId,role
1,1,Bud Fox
4,1,Carl Fox
3,1,Gordon Gekko
4,2,A.J. MacInerney
3,2,President Andrew Shepherd
5,3,Ellis Boyd ‘Red’ Redding
[ramisetty@cluster-01 examples]$

==== Note : refer  for graph : http://neo4j.com/docs/2.2.2/cypherdoc-loading-data.html

Load the csv files:
————————–

LOAD CSV WITH HEADERS FROM “file:///home/ramisetty/vijay/neo4j/neo4j-community-2.3.0-M01/examples/movies.csv” AS line
CREATE (m:Movie { id:line.id,title:line.title, released:toInt(line.year)});

LOAD CSV WITH HEADERS FROM “file:///home/ramisetty/vijay/neo4j/neo4j-community-2.3.0-M01/examples/persons.csv” AS line
MERGE (a:Person { id:line.id })
ON CREATE SET a.name=line.name;

LOAD CSV WITH HEADERS FROM “file:///home/ramisetty/vijay/neo4j/neo4j-community-2.3.0-M01/examples/roles.csv” AS line
MATCH (m:Movie { id:line.movieId })
MATCH (a:Person { id:line.personId })
CREATE (a)-[:ACTED_IN { roles: [line.role]}]->(m);

neo4j-sh (?)$ LOAD CSV WITH HEADERS FROM “file:///home/ramisetty/vijay/neo4j/neo4j-community-2.3.0-M01/examples/movies.csv” AS line
> CREATE (m:Movie { id:line.id,title:line.title, released:toInt(line.year)});
+——————-+
| No data returned. |
+——————-+
Nodes created: 3
Properties set: 9
Labels added: 3
158 ms
neo4j-sh (?)$

neo4j-sh (?)$ LOAD CSV WITH HEADERS FROM “file:///home/ramisetty/vijay/neo4j/neo4j-community-2.3.0-M01/examples/persons.csv” AS line
> MERGE (a:Person { id:line.id })
> ON CREATE SET a.name=line.name;
+——————-+
| No data returned. |
+——————-+
Nodes created: 5
Properties set: 10
Labels added: 5
210 ms

neo4j-sh (?)$ LOAD CSV WITH HEADERS FROM “file:///home/ramisetty/vijay/neo4j/neo4j-community-2.3.0-M01/examples/roles.csv” AS line
> MATCH (m:Movie { id:line.movieId })
> MATCH (a:Person { id:line.personId })
> CREATE (a)-[:ACTED_IN { roles: [line.role]}]->(m);
+——————-+
| No data returned. |
+——————-+
Relationships created: 6
Properties set: 6
216 ms

Example Query :   
—————

referhttp://neo4j.com/docs/2.2.2/cypherdoc-movie-database.html
——–

Let’s list all persons and the movies they acted in.

neo4j-sh (?)$ MATCH (person:Person)-[:ACTED_IN]->(movie:Movie)
> RETURN person.name, movie.title;
+————————————————+
| person.name       | movie.title                |
+————————————————+
| “Michael Douglas” | “Wall Street”              |
| “Martin Sheen”    | “Wall Street”              |
| “Charlie Sheen”   | “Wall Street”              |
| “Michael Douglas” | “The American President”   |
| “Martin Sheen”    | “The American President”   |
| “Morgan Freeman”  | “The Shawshank Redemption” |
+————————————————+
6 rows
65 ms
neo4j-sh (?)$

neo4j-sh (?)$ MATCH (movie:Movie)
> RETURN movie.title;
+—————————-+
| movie.title                |
+—————————-+
| “The Matrix”               |
| “Cloud Atlas”              |
| “Forrest Gump”             |
| “Wall Street”              |
| “The American President”   |
| “The Shawshank Redemption” |
+—————————-+
6 rows
194 ms

neo4j-sh (?)$ MATCH (n)-[r]->(m)
> RETURN n AS FROM , r AS `->`, m AS to;
+—————————————————————————————————————————————————————+
| FROM                                    | ->                                                | to                                                              |
+—————————————————————————————————————————————————————+
| Node[6]{}                               | :ACTED_IN[1]{roles:[“Zachry”]}                    | Node[8]{}                                                       |
| Node[6]{}                               | :ACTED_IN[0]{roles:[“Forrest”]}                   | Node[7]{}                                                       |
| Node[9]{}                               | :DIRECTED[2]{}                                    | Node[7]{}                                                       |
| Node[13]{name:”Charlie Sheen”,id:”1″}   | :ACTED_IN[3]{roles:[“Bud Fox”]}                   | Node[10]{title:”Wall Street”,released:1987,id:”1″}              |
| Node[15]{name:”Michael Douglas”,id:”3″} | :ACTED_IN[7]{roles:[“President Andrew Shepherd”]} | Node[11]{id:”2″,title:”The American President”,released:1995}   |
| Node[15]{name:”Michael Douglas”,id:”3″} | :ACTED_IN[5]{roles:[“Gordon Gekko”]}              | Node[10]{title:”Wall Street”,released:1987,id:”1″}              |
| Node[16]{name:”Martin Sheen”,id:”4″}    | :ACTED_IN[6]{roles:[“A.J. MacInerney”]}           | Node[11]{id:”2″,title:”The American President”,released:1995}   |
| Node[16]{name:”Martin Sheen”,id:”4″}    | :ACTED_IN[4]{roles:[“Carl Fox”]}                  | Node[10]{title:”Wall Street”,released:1987,id:”1″}              |
| Node[17]{name:”Morgan Freeman”,id:”5″}  | :ACTED_IN[8]{roles:[“Ellis Boyd ‘Red’ Redding”]}  | Node[12]{id:”3″,title:”The Shawshank Redemption”,released:1994} |
+—————————————————————————————————————————————————————+
9 rows
78 ms
neo4j-sh (?)$