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

Several key usages


Let's see some key usages; others will be seen in dedicated chapters, such as Chapter 8, Importing data into Neo4j.

Setup

First, we need to grant permissions to the APOC functions and procedures, so we need to add the following line to the end of the conf/neo4j.conf file; otherwise, we would get an error message like this one--apoc.algo.pagerank is not available due to having restricted access rights, check configuration:

dbms.security.procedures.unrestricted=apoc.*

Random graph generators

Well, not so random  graph generators, for there is an algorithm to choose and parameters to input. I call it random because it's meaningless:

CALL apoc.generate.ba(1000, 2, 'Person', 'FRIEND_OF')

This example uses the Barabasi-Albert (ba) model to generate a thousand nodes with the label Person that have two FRIEND_OF relations. As Person is a common label, each node will have a name property, which looks as follows, added automatically:

A lot of friends, connected

Be aware that this can create...