Neo4j: All content tagged as Neo4j in NoSQL databases and polyglot persistence
Monday, 27 February 2012
Beer Recommendations With Graph Databases
Josh Adell explains how to extend a simple recommendation engine to similarity-based collaborative filtering:
Instead of basing recommendations off of one similar rating, I can calculate how similarly you and I rated all the things we have rated, and only get recommendations from you if I have determined we are similar enough in our tastes.
This is much closer to how recommendation engines developed by sites like Amazon or Netflix are working.
Original title and link: Beer Recommendations With Graph Databases (©myNoSQL)
via: http://blog.everymansoftware.com/2012/02/similarity-based-recommendation-engines.html
Thursday, 23 February 2012
Gremlin vs Cypher
Romiko Derbynew comparing Gremlin and Neo4j Cypher:
- Simple graph traversals are much more efficient when using Gremlin
- Queries in Gremlin are 30-50% faster for simple traversals
- Cypher is ideal for complex traversals where back tracking is required
- Cypher is our choice of query language for reporting
- Gremlin is our choice of query language for simple traversals where projections are not required
- Cypher has intrinsic table projection model, where Gremlins table projection model relies on AS steps which can be cumbersome when backtracking e.g. Back(), As() and _CopySplit, where cypher is just comma separated matches
- Cypher is much better suited for outer joins than Gremlin, to achieve similar results in gremlin requires parallel querying with CopySplit, where as in Cypher using the Match clause with optional relationships
- Gremlin is ideal when you need to retrieve very simple data structures
- Table projection in gremlin can be very powerful, however outer joins can be very verbose
So in a nutshell, we like to use Cypher when we need tabular data back from Neo4j and is especially useful in outer joins.
Original title and link: Gremlin vs Cypher (©myNoSQL)
via: http://romikoderbynew.com/2012/02/22/gremlin-vs-cypher-initial-thoughts-neo4j/
Monday, 20 February 2012
Neo4J Spatial and Gephi for Smart Data Analysis
As I often run the same course, it would be interesting to calculate my average pace at specific locations. When combining the data of all of my courses, I could deduct frequently encountered locations. Finally, could there be a correlation between my average pace and my distance from home? In order to come up with answers to these questions, I will import my running data into a Neo4J Spatial datastore. Neo4J Spatial extends the Neo4J Graph Database with the necessary tools and utilities to store and query spatial data in your graph models. For visualizing my running data, I will make use of Gephi, an open-source visualization and manipulation tool that allows users to interactively browse and explore graphs.
This looks like a great application of a graph database for analyzing geo data. And it’s very practical.
Original title and link: Neo4J Spatial and Gephi for Smart Data Analysis (©myNoSQL)
A Question About NoSQL Managed Hosting
It’s impossible to always have the right answers to all the questions. So this time I’ll have to ask you all: why only some NoSQL databases are present in managed hosting offers?
The first wave of NoSQL managed hosting services brought MongoDB, CouchDB, and some Redis. The second wave brought some more MongoDB, CouchDB, and just a bit more of Redis. It was only the third wave that brought some managed services for graph databases: Neo4j and OrientDB. Plus the first proposal for Cassandra managed hosting.
The first answer that comes to mind when thinking about NoSQL managed services is adoption. If a product is not in wide use then the chances for a company to run a profitable hosting business are very low. But I have the feeling that this is not the only or the complete answer.
Please chime in and share your thoughts.
Original title and link: A Question About NoSQL Managed Hosting (©myNoSQL)
Monday, 13 February 2012
What types of applications might a graph database be well suited for?
Found this list of use cases for graph databases in a follow up of a Neo4j webinar:
- Social networks
- Collaboration programs
- Configuration Management
- Geo-Spatial applications
- Impact Analysis
- Master Data Management
- Network Management
- Product Line Management
- Recommendation Engines
The more generic answer would be that graph databases can be a great fit for problems handling highly connected data.
The examples above are clear cases of use cases involving highly connected data , but as of now I’m not aware of any social networks, network management, or large scale recommendation engines built on top of one of the existing graph databases.
Original title and link: What types of applications might a graph database be well suited for? (©myNoSQL)
Thursday, 2 February 2012
Neo4j 1.6 GA Release: Heroku, Cypher, Lucene 3.5
Announced last week, Jörn Kniv aka Neo4j 1.6 features:
- Improved Cypher (the query language)
- Web admin - Full Neo4j Shell commands, including versioned Cypher syntax.
- Kernel improvements
- Upgraded Lucene version to 3.5.
Also the Neo guys have been pushing quite a bit their public beta Heroku add-on.
Original title and link: Neo4j 1.6 GA Release: Heroku, Cypher, Lucene 3.5 (©myNoSQL)
Wednesday, 1 February 2012
Neo4j on Heroku: Building a Movie Recommendation Website for $0.00
Recently Max de Marzi has published sort of a getting started with Neo4j on Heroku guide. Here is how Max described it:
It takes a lot less effort to build a website these days than it used to. All it takes is a clever dwarf standing on the shoulders of the right giants. In a series of blog posts, I walk you through creating a movie recommendation website using Neo4j, Heroku, themoviedb.org, Processing.js, GroupLens, Marko Rodriguez and Michael Aufreiter. Free database, free hosting, free movie posters, free visualization, free dataset, free recommendation algorithm, just need to add a little code to bring them all together and BYOP (bring your own popcorn).
This will not get you a Netflix or Amazon like recommendation engine, but using a similar approach could definitely tell if Muhammad Ali is truly the greatest.
Original title and link: Neo4j on Heroku: Building a Movie Recommendation Website for $0.00 (©myNoSQL)
Wednesday, 11 January 2012
Friend Recommendations Using Gremlin With Neography
Max De Marzi:
Gremlin is a domain specific language for traversing property graphs. Neo4j is one of the databases that can speak the gremlin language, and as promised I’ll show you how you can use it to implement friend recommendations as well as degrees of separation.
Original title and link: Friend Recommendations Using Gremlin With Neography (©myNoSQL)
via: http://maxdemarzi.com/2012/01/06/gremlin-with-neography/
Thursday, 5 January 2012
Getting Started With Ruby and Neo4j Using Neography
Getting started with Ruby and Neo4j is very easy. Follow these steps and you’ll be up and running in no time.First we install the neography […]
The traversal API looks really nice and comes in two flavors: the Neo4j REST API and a Ruby-esque one.
Original title and link: Getting Started With Ruby and Neo4j Using Neography (©myNoSQL)
via: http://maxdemarzi.com/2012/01/04/getting-started-with-ruby-and-neo4j/
Tuesday, 20 December 2011
Grails 2.0 and NoSQL
Graeme Rocher:
Grails 2.0 is the first release of Grails that truly abstracts the GORM layer so that new implementations of GORM can be used. […] The MongoDB plugin is at final release candidate stage and is based on the excellent Spring Data MongoDB project which is also available in RC form. […] Grails users can look forward to more exciting NoSQL announcements in 2012 with upcoming future releases of GORM for Neo4j, Amazon SimpleDB and Cassandra in the works.
This is great news.
The very very big news would be a Grails version that doesn’t default anymore to using Hibernate for accessing a relational database.
Original title and link: Grails 2.0 and NoSQL (©myNoSQL)
via: http://blog.springsource.org/2011/12/15/grails-2-0-released/
Neo4j Gets Experimental JDBC Driver
Neo4j getting a JDBC driver before MongoDB is a surprise[1]. Rickard Öberg:
When it comes to NOSQL databases, one of the key advantages is that they allow you to structure your data in a way that better resembles your domain, and also allows you to use query languages where you can express things that are either really awkward or slow with SQL. However, one of the advantages that relational databases have is that they can be accessed from lots of tools using JDBC, as a standard API. So what would happen if a NOSQL database, like Neo4j, also had a JDBC driver? I decided to find out!
If this catches up, the next step is adding a non-HTTP protocol to Neo4j server.
-
MongoDB is the NoSQL database with the richest querying model which resembles SQL. ↩
Original title and link: Neo4j Gets Experimental JDBC Driver (©myNoSQL)
via: http://rickardoberg.wordpress.com/2011/12/19/creating-a-jdbc-driver-for-neo4j/
Monday, 19 December 2011
Neo4j Domain Modeling With Spring Data
The relationship between a person and a project has an associated role. This relationship is also the basis for the list of collaborators: two people are collaborators if there’s at least one project of which they’re both members.

Solve this with a relational database.
Original title and link: Neo4j Domain Modeling With Spring Data (©myNoSQL)
Most Popular Articles
- Translate SQL to MongoDB MapReduce
- Tutorial: Getting Started With Cassandra
- CouchDB vs MongoDB: An attempt for a More Informed Comparison
- Cassandra @ Twitter: An Interview with Ryan King
- A Couple of Nice GUI Tools for MongoDB
- NoSQL benchmarks and performance evaluations
- Ehcache: Distributed Cache or NoSQL Store?
- Document Databases Compared: CouchDB, MongoDB, RavenDB
- Quick Review of Existing Graph Databases
- NoSQL Data Modeling