17. Neo4J: CHARACTERISTICS
true
ACID
transac%ons;
scales
to
billions
of
nodes
and
rela%onships;
high
speed
querying
through
traversals;
declara%ve
graph
query
language;
25. Neo4J: CYPHER
MATCH
(p1:Person)-‐[x:RATED]-‐>(m:PRODUCT)<-‐[y:RATED]-‐
(p2:Person)
WITH
SUM(x.ra%ng
*
y.ra%ng)
AS
xyDotProduct,
SQRT(REDUCE(xDot
=
0,
a
IN
COLLECT(x.ra%ng)
|
xDot
+
a^2))
AS
xLength,
SQRT(REDUCE(yDot
=
0,
b
IN
COLLECT(y.ra%ng)
|
yDot
+
b^2))
AS
yLength,
p1,
p2
CREATE
UNIQUE
(p1)-‐[s:SIMILARITY]-‐(p2)
SET
s.similarity
=
xyDotProduct
/
(xLength
*
yLength)