GraphAware Blog

Find out what's new in the Neo4j world

Mapping query results to domain entities using SDN 4.1

06 Apr 2016 by Luanne Misquitta 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 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 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 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 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 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 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,...

GraphConnect 2015 Talk

20 Nov 2015 by Michal Bachman Neo4j Conference Intermediate Search Elasticsearch

Last month, I had the pleasure of speaking at GraphConnect in San Francisco, introducing the Graph-Aided Search to alarge audience of Neo4j users and graph enthusiasts. For those who missed the conference, the recording and slides havenow been made available. Enjoy and get in touch with feedback / questions!VideoSlides Real-Time Recommendations and the Future of Search from GraphAware

Faster Recommendations with Neo4j 2.3 Triadic Selection

20 Oct 2015 by Alessandro Negro, Christophe Willemsen Neo4j Cypher Recommendations

Recently, Neo Technology announced the 2.3.0-RC1 release of their Neo4j graph database. One of the key new features is TriadicSelection built into Cypher’s Cost Based Planner. In this blog post, we will explore the Triadic Selection in detailand demonstrate how significantly it can speed up recommendations computed in Neo4j.What is Triadic Selection?A Bit of Theory: Triadic ClosureNetworks or graphs can rarely be considered static structures. On the contrary, often they seem to be ever-evolving objects.Any social network, for example, is often the most dynamic of graphs: at any moment, new relationships are created between existing nodes, other relationships vanish,new nodes...

Recommendations with Neo4j and Graph-Aided Search

30 Sep 2015 by Michal Bachman Neo4j Recommendations Search Elasticsearch

For the last couple of years, Neo4j has been increasingly popular as the technology of choice for people building real-time recommendation engines. Having been at the forefront of the graph movement through clientengagements and open-source software development, we have identified the next step in the natural evolution of graph-based recommendationengines. We call it Graph-Aided Search.Recommendations EverywhereAt first glance, it may seem that graph databases are only good for social networks but it has been proven over and overagain that the variety of domains and industries that need a graph database to store, analyse, and query connected datacould not be any...