Complimentary technologies are very important as it's rarely possible for a single technology to be optimized for everything. There are always trade-offs - jack of all trades master of none also applies in technology solutions: https://www.graphgrid.com/jack-of-all-data-master-none/.
In this increasingly polyglot world of data storage options one natural pairing that has proven quite effective is Neo4j and ElasticSearch. Neo4j is designed for optimal graph traversal (i.e querying highly connected data) and ElasticSearch is a powerful search server with great language analyzers and aggregation strategies out of the box. While you could try to rebuild the search capabilities in Neo4j because it's built on Lucene, you'd be relaying much of the foundation you already have in ElasticSearch with a subpar result and similarly while you could try to represent connected graph structures in ElasticSearch you'd be expending much effort with short comings in reliability due to the underlying storage mechanisms compared to using Neo4j for that connected data aspect. In this talk we'll look at paring them together and reaping the benefits of both doing what their best at.
Here is a high level summary blog post I published a couple weeks ago https://www.graphgrid.com/pairing-neo4j-elasticsearch-the-basics/ and we'll go into more technical detail about the integration.
2. Introduction
Benjamin Nussbaum
20 years of Technology Innovation.
Software architecture | Database design | Server infrastructure
President & CTO of AtomRain,
one of the world’s leading NEO4J Solution Partners
and makers of GraphGrid.
a platform by
3. Today’s Meetup Agenda
Neo4j Integration with ElasticSearch
• Why Does this Pairing Make Sense?
Graph Basics
• What is a graph database.
• How a graph works.
• Native graphs.
• Graph Layers.
Connecting ElasticSearch
• Pushing Data from Neo4j to ElasticSearch.
• Enhancing a Search Query by Including Neo4j.
Open Source Resources
• Try out the Integration!
Q&A
4. Why Pair Neo4j and ElasticSearch?
ElasticSearch
▪ Search server
where scale and language rule.
▪ Denormalized document storage
providing fast, direct data access
▪ Full-text, faceted search
through highly indexed data
▪ Native graph database
where reliability and traversal rule.
▪ ACID-compliant, transactional db
guaranteeing referential integrity.
▪ Constant time traversals
through highly connected data
Neo4j
5. Graph-Aided Search
delivers a more personalized results enhanced by the
connectedness around the user making the query and the thing being searched
For white papers, visit neo4j.com/use-cases/
6. Today’s Meetup Agenda
Neo4j Integration with ElasticSearch
• Why Does this Pairing Make Sense?
Graph Basics
• What is a graph database.
• How a graph works.
• Native graphs.
• Graph Layers.
Connecting ElasticSearch
• Pushing Data from Neo4j to ElasticSearch.
• Enhancing a Search Query by Including Neo4j.
Open Source Resources
• Try out the Integration!
Q&A
7. A “Node”
in the graph
Hotel
Room
Person
A Graph Models
Real-World People, Places, and Things
Solution Partner
A “Label”
in the graph
8. A “Relationship”
in the graph
PREFERS
Hotel
Room
Person
HAS_AVAILABLE
A Graph Models
Contextual Relationships
Solution Partner
10. Graph Queries
Start with one “entity” and traverse the graph
to discover linked people, places, or things
Query for a Graph
MATCH (boss)-[:MANAGES*0..3]->(sub),
(sub)-[:MANAGES*1..3]->(report)
WHERE boss.name = “John Doe”
RETURN sub.name AS Subordinate,
count(report) AS Total
NEO4J Cypher Language
“Complex Join” in SQL
Solution Partner
11. Today’s Meetup Agenda
Neo4j Integration with ElasticSearch
• Why Does this Pairing Make Sense?
Graph Basics
• What is a graph database.
• How a graph works.
• Native graphs.
• Graph Layers.
Connecting ElasticSearch
• Pushing Data from Neo4j to ElasticSearch.
• Enhancing a Search Query by Including Neo4j.
Open Source Resources
• Try out the Integration!
Q&A
12. Brining It All Together
great text based search leveraging contextually significant relationships
13. Brining It All Together
great text based search leveraging contextually significant relationships
14. Today’s Meetup Agenda
Neo4j Integration with ElasticSearch
• Why Does this Pairing Make Sense?
Graph Basics
• What is a graph database.
• How a graph works.
• Native graphs.
• Graph Layers.
Connecting ElasticSearch
• Pushing Data from Neo4j to ElasticSearch.
• Enhancing a Search Query by Including Neo4j.
Open Source Resources
• Try out the Integration!
Q&A
15. Resources to Get you Started
Open Source
▪ neo4j-contrib: Neo4j -> ElasticSearch
https://github.com/neo4j-contrib/neo4j-elasticsearch
▪ graphaware: Neo4j -> ElasticSearch (<- is coming soon)
https://github.com/graphaware/neo4j-to-elasticsearch/
Managed Service
▪ graphgrid: Neo4j -> ElasticSearch
https://www.graphgrid.com/neo4j-elasticsearch/
16. Today’s Meetup Agenda
Neo4j Integration with ElasticSearch
• Why Does this Pairing Make Sense?
Graph Basics
• What is a graph database.
• How a graph works.
• Native graphs.
• Graph Layers.
Connecting ElasticSearch
• Pushing Data from Neo4j to ElasticSearch.
• Enhancing a Search Query by Including Neo4j.
Open Source Resources
• Try out the Integration!
Q&A