Neo4j In Action Pdf 🎉
“Three hops,” Alex whispered. “We can now predict risk chains.” Using collaborative filtering , Sam wrote a query to find people similar to a suspect based on shared locations and contacts:
“It took 2 milliseconds,” Sam said. “And we didn’t even index anything yet.” Alex needed to know: how is Alice connected to a known criminal, Mr. X?
CREATE (alice:Person name: 'Alice', age: 34) CREATE (bob:Person name: 'Bob', age: 29) CREATE (alice)-[:KNOWS]->(bob) A witness said: “Bob called a phone number, and that phone was used near the crime scene.” neo4j in action pdf
“The connections don’t lie,” Alex said. “Neither does Neo4j.” | Chapter | Topic | |---------|-------| | 1–2 | Graph thinking, Neo4j basics, Cypher intro | | 3–4 | Data modeling, querying, indexing | | 5–6 | Advanced queries, shortest path, recommendations | | 7–8 | Integration with Java, Spring, REST APIs | | 9–10 | Performance tuning, clustering, high availability | | 11–12 | Real‑world use cases (social, fraud, logistics) |
SQL would need multiple JOINs. In Neo4j: “Three hops,” Alex whispered
MATCH path = shortestPath( (alice:Person name: 'Alice')-[:KNOWS*..5]-(mrX:Person name: 'Mr. X') ) RETURN path The result: Alice → KNOWS → Bob → KNOWS → Dave → KNOWS → Mr. X
MATCH (p:Person name: 'Charlie')-[:VISITED|KNOWS]->(common)<-[:VISITED|KNOWS]-(other:Person) WHERE p <> other RETURN other.name, count(common) AS similarity ORDER BY similarity DESC This returned unknown associates—perfect for expanding investigations. The agency integrated Neo4j with Kafka. Every new tip became a new relationship. A trigger query ran every minute: In Neo4j: MATCH path = shortestPath( (alice:Person name:
His tech lead, Sam, introduced Neo4j—a where data is stored as nodes (entities) and relationships (connections). Chapter 2: Building the Knowledge Graph Sam modeled their first case:
