Graph Databases & NEO4J

20
NEO4J

description

phpkonf meetup neo4j sunumu

Transcript of Graph Databases & NEO4J

Page 1: Graph Databases & NEO4J

NEO4J

Page 3: Graph Databases & NEO4J

NEO4JGraph

Database

NoSQLDatabases

JAVA

NeoTechnology

OpenSource

Nodes

Edges Attributes

is_a

insta

nce_o

f

has

has

has

has

developed_by

developed_as

written_in

Page 4: Graph Databases & NEO4J

graph database’ler

•ilişkisel veritabanlarından farklıdırlar

•node, edge, ve bunlara bağlı attribute’lerden oluşurlar.

•kayıtlar için node, ilişkiler için edge diyebiliriz.

Page 5: Graph Databases & NEO4J
Page 6: Graph Databases & NEO4J

cypher

•Neo4j’nin kullandığı sorgu dilidir.

•SQL gibi düşünülebilir.

MATCH (me {name:"fatih"})-[:FOLLOWS]->(followees)RETURN followees

Page 7: Graph Databases & NEO4J
Page 8: Graph Databases & NEO4J

Drivers•REST interface’ini kullanmak

oldukça basittir.

•Eğer bir client isterseniz de birçok dilde implementation’ı mevcuttur.

POST http://localhost:7474/db/data/transaction/commit

{ "statements": [{ "statement" : “YOUR CYPHER QUERY” }]}

Page 9: Graph Databases & NEO4J

Nodes

CREATE (User {username: 'ramazan'}); CREATE (User {username: 'fatih'}); CREATE (User {username: 'fatma'}); CREATE (User {username: 'can'}); CREATE (User {username: 'emine'}); CREATE (User {username: 'gülzade'}); CREATE (User {username: 'baki'});

Page 10: Graph Databases & NEO4J

Edges

MATCH (user { username:'fatih' }), (followee { username:'ramazan' })

# user’ları match edip aralarında # bir edge (ilişki) yaratıyoruz

CREATE (user)-[:FOLLOWS]->(followee);

Page 11: Graph Databases & NEO4J

Query

MATCH (me {username:'fatiherikli'}) -[r:FOLLOWS]->(followees) return me, followees

Page 12: Graph Databases & NEO4J
Page 13: Graph Databases & NEO4J
Page 14: Graph Databases & NEO4J

Directions

MATCH (me {username:'fatiherikli'}) <-[r:FOLLOWS]-(followers) return me, followers

Page 15: Graph Databases & NEO4J

Oklar

(Kaynak) -[İLİŞKİ]-> (Hedef)

(user) -[:FOLLOWS]-> (followees) (user)< -[:FOLLOWS]- (followers)

Page 16: Graph Databases & NEO4J

örnek:

MATCH (fatih { username:'fatiherikli' }), (sepet { username: 'sepeth'}) WITH fatih, sepet MATCH (fatih)-[:FOLLOWS]->(mutual)<-[:FOLLOWS]-(sepet) RETURN mutual

fatih ve sepetle yumurta kişisinin ortak olarak takip ettiği kişiler:

Page 17: Graph Databases & NEO4J

çıktısı

Page 18: Graph Databases & NEO4J

örnek:

MATCH (fatih { username:'fatiherikli' }) WITH fatih MATCH (fatih)-[:FOLLOWS]->(followees)<-[:POSTED_IN]-(channels) RETURN channels

fatih kişisinin takip ettiği kişilerin yazdığı kanallar

Page 19: Graph Databases & NEO4J

örnek:

MATCH (fatih { username:'fatiherikli' }) WITH fatih MATCH (fatih)-[:SUBSCRIBER_OF]->(channels) ->[:POSTED_IN]-(contentions) <-[:POSTED_BY]-(authors) RETURN distinct authors

fatih kişisinin takip ettiği kanallar üzerinden takip edilecek kişi önerileri

Page 20: Graph Databases & NEO4J

teşekkürler