GraphAware Blog

Find out what's new in the Neo4j world

Graph-Aided Search - The Rise of Personalised Content

20 Apr 2016 by Alessandro Negro, Christophe Willemsen · 26 min read Neo4j Cypher Recommendations Elasticsearch

In our previous blog postwe introduced the concept of Graph Aided Search. It refers to a personalised user experience during search where theresults are customised for each user based on information gathered about them (likes, friends, clicks, buying history, etc.).This information is stored in a graph database and processed using machine learning and/or graph analysis algorithms.A simple example is the LinkedIn search functionality. If we were typing “Michal” in the text input, it would obviouslyreturn people where the name matches and order them by full text relevancy with some fuzziness:Lucene-based search engines such as Elasticsearch and Solr offer impressive performance...

(Un)common Use Cases for Graph Databases

18 Apr 2016 by Michal Bachman · 3 min read Neo4j Beginner Modelling

At GraphAware, we live and breathe Neo4j. For three years, we have been helping customers around the world embrace thisamazing technology as a solution to many interesting problems. Mainstream applications of graphs, such as real-timerecommendations, fraud detection, impact analysis, and graph-aided search, have been getting a lot of media attention.In the run up to GraphConnect Europe 2016, we would like to illustrate that graphs are truly for everyone by going oversome of the less obvious, though equally interesting and intellectually stimulating use cases that we have come across.Rules EnginesWhether you’re a startup building a mobile application that will help people...

Neo4j OGM Events - Part 1

13 Apr 2016 by Vince Bickers · 13 min read Neo4j OGM SDN Intermediate

As of version 2.1, Neo4j OGM will support persistence events. Although a date for the release of 2.1 isn’t known at thetime of writing, we think this is an important and exciting new feature and so we’ll be writing a series of posts aboutit over the next few weeks to whet your appetites. In this first post we’ll take a quick tour of the new Events mechanismin the OGM, and provide some examples of how we might use it in our own applications. But first, some background…OGM persistence strategyBy design, the OGM has a deep persistence strategy. This means that...

Mapping query results to domain entities using SDN 4.1

06 Apr 2016 by Luanne Misquitta · 6 min read Neo4j Spring SDN OGM

Spring Data Neo4j 4.1 introduces the ability to map nodes and relationships returned by custom Cypher queries to domain entities. This blog post will explain how different types of query results map to entities.But firstThere are two things to keep in mind- This functionality is only available in SDN 4.1 and Neo4j-OGM 2.0 SDN/Neo4j-OGM does not modify your Cypher queries at runtime and it can only map what the query returnsThe BasicsThis simple example shows a custom Cypher query that returns a single node entity and a calculated value: @Query("MATCH (user:User) WHERE <complex conditions> RETURN user, calculatedValue") UserResult findUserByComplexCondition(String param);and...

Securing Neo4j with GraphAware Enterprise

29 Mar 2016 by Michal Bachman · 5 min read Neo4j GraphAware Intermediate Security Enterprise

For most organisations, data security is extremely important. The topic comes up every single time we are training, consulting,or otherwise engaging in the world of graphs and Neo4j. At the same time, security is very difficult and time-consuming to get rightand the implications of getting it wrong can be serious. In this blog post, we introduce the integration of Spring Securityinto Neo4j which provides important security controls and mechanisms for enterprises and governments that make use of theworld’s most popular graph database.Security in Neo4jNeo4j comes with certain security mechanisms out of the box. These include HTTPS support,single-user authentication with all-or-nothing...

Expiring Data in Neo4j

15 Mar 2016 by Michal Bachman · 3 min read Neo4j GraphAware Intermediate

At GraphAware, we help organisations in a wide range of verticals solve problems with graphs.Once we come across a requirement or use case two or three different times, we typically create an open-source Neo4j extensionthat addresses it. The latest addition to our product portfolio, introduced in this post, is a simple library that automaticallyexpires data from the Neo4j graph database.GraphAware FrameworkOpen-sourcing useful extensions helps us deliver solutions faster, lets people who prefer a DIY approach be more productive, andgives us valuable community feedback. That’s how our most popular products, such as the GraphAware Recommendation Engine,TimeTree, UUID, and others were born.They...

Improving the Flavour- Upgrading to Spring Data Neo4j 4.1

24 Feb 2016 by Luanne Misquitta · 6 min read Neo4j Spring SDN OGM

Our previous article demonstrated how easy it was to build an application using Spring Data Neo4j 4.The first milestone of Spring Data Neo4j 4.1 has just been released (based on Neo4j OGM 2.0), and it delivers significant performance improvements for write operations, the ability to map nodes and relationships returned in custom Cypher queries to domain entities, as well as the much awaited support for embedded Neo4j.The new Components framework in Neo4j OGM 2.0 allows you to configure your application by specifying which driver you want to use to connect to Neo4j.Currently supported are the Http and Embedded drivers. A...

Meetup Invite: Real-Time Recommendations and the Future of Search

30 Jan 2016 by Michal Bachman · 0 min read Neo4j Meetup

We are delighted to invite you to a Meetup on 4th February 2016 at 6:30 pm at GraphAware London office where Michal Bachman is going to present the European premiere of his talk entitled “Real-Time Recommendations and the Future of Search” combined with a unique expert panel discussion and Q&A.Read more and sign up here.Time & Place4th February 2016 at 6:30 pm </br>GraphAware London office</br>133 Great Suffolk StreetLondon SE1 1PPUnited Kingdom</br>

The Essence of Spring Data Neo4j 4

15 Dec 2015 by Luanne Misquitta · 16 min read Neo4j Spring SDN OGM

This guide (first published on Airpair) will get you up and running with Spring Data Neo4j 4 in under an hour.It is based on a live application, Flavorwocky, the winner of the Neo4j Heroku Challenge 2012. Rewritten to use Spring Data Neo4j 4, the code is open source and available on Github.Introducing Spring Data Neo4j 4Neo4j is the world’s most popular graph database. With ACID guarantees and the ability to scale to billions of nodes and relationships, Neo4j is the preferred choice for modelling highly connected domains.Spring Data Neo4j is part of the Spring Data initiative and simplifies development using...

Processing Large Sets of Nodes with Cypher

10 Dec 2015 by Christophe Willemsen · 4 min read Neo4j Cypher

Iterating over large numbers of nodes using Cypher is quite a common use case in Neo4j. Typically, the reason for doing thisis that we want to perform some kind of operation for each one of these nodes. In this blog post, we will use one millionTestNodes and try to iterate over them in order to index their contents into a freshly created Elasticsearch index.There are three approaches we can take, two of which are quite common, but the most performant technique is largely unknown.First Technique : SKIP and LIMITUsing SKIP and LIMIT is the first approach that comes to mind,...