Book Image

Learning Neo4j 3.x - Second Edition

By : Jerome Baton
Book Image

Learning Neo4j 3.x - Second Edition

By: Jerome Baton

Overview of this book

Neo4j is a graph database that allows traversing huge amounts of data with ease. This book aims at quickly getting you started with the popular graph database Neo4j. Starting with a brief introduction to graph theory, this book will show you the advantages of using graph databases along with data modeling techniques for graph databases. You'll gain practical hands-on experience with commonly used and lesser known features for updating graph store with Neo4j's Cypher query language. Furthermore, you'll also learn to create awesome procedures using APOC and extend Neo4j's functionality, enabling integration, algorithmic analysis, and other advanced spatial operation capabilities on data. Through the course of the book you will come across implementation examples on the latest updates in Neo4j, such as in-graph indexes, scaling, performance improvements, visualization, data refactoring techniques, security enhancements, and much more. By the end of the book, you'll have gained the skills to design and implement modern spatial applications, from graphing data to unraveling business capabilities with the help of real-world use cases.
Table of Contents (24 chapters)
Title Page
Credits
About the Authors
Acknowledgement
About the Reviewers
www.PacktPub.com
Customer Feedback
Preface

What is so spatial then?


The answer is:  

Neo4j is spatial, APOC is spatial too, and of course, Neo4j Spatial is more spatial. Let me explain.

Spatial capabilities are present in these three pieces of software. Their spatialness goes from basic to advanced in that order.

However, as the last two (APOC and Neo4j Spatial) are plugins that you install in the first software (Neo4j), spatial features add up. The package names change in order to call the procedures. We will see this now.

Neo4j's spatial features 

Neo4j has a limited built-in spatial support since Neo4j 3.0. There is default support for point and distance. This support assumes that you will set property keys named latitude and longitude for the nodes you want to use as points.

You can use them to calculate the distance between two nodes, but first let's build the towers, starting with the good habit of creating a constraint:

CREATE CONSTRAINT ON (t:Tower) ASSERT t.name IS UNIQUE
CREATE (paris:Tower {name: "Eiffel Tower",country:"FRA"...