Looking for your weekly fix of what's going on in the world of Neo4j on Stack Overflow? Well, look no further as it's that time of the week again!
This week, we see the introduction of another implementation of the Neo4j OGM (Object-Graph Mapper), some questions concerning performance and scalability, a question related to concurrent MERGE'ing, and quite a few questions related to the use of Spring Data Neo4j (SDN) 4.x.
(We might even throw in a question concerning Neo4j 3.0 to keep that current trend going.)
Neo4j OGM in PHP
Hot off the presses, a PHP implementation of the Neo4j OGM is now available! In spite of it having just been released this morning (May 25, 2016), there is already a question concerning how to make use of it (don't let the title fool you).
Performance and Scalability
Node in multiple linked list. Linked lists are a common use case for using a graph and it is worthwhile to understand the ins and outs of such lists in Neo4j. The question asked is a common one, but a couple different answers are given and compared for scalability reasons. I strongly suggest having a look over this one.
Bad performance with OR operator. Sometimes, even with the right indices and a good data model setup, you can't always get the performance you want. Have a look at this question to see an example of such a situation, though the real value of this question is trying to set up something similar and use Cypher's EXPLAIN feature to see just what is possible with Cypher's query execution planner.
This question, while it may seem fairly obvious, is still one worth looking at given the parallel/concurrent nature of its usage. The answers to the question help reinforce a key point about MERGE and how it operates with constraints, so be sure to have a read through.
Spring Data Neo4j 4.x
This week has seen a slew of questions related to the use of SDN 4.x. It would look as though its adoption is picking up as more and more users migrate from 3.x.
Spring-data-neo4j-4 How to specify more than one label in @NodeEntity annotation. Has SDN 4 updated how multiple labels on a node are handled? Or are you still required to model your nodes via inheritance to achieve this goal?
Porting application from SDN 3 to SDN 4 and from Neo4j 2.3 to 3.0.1. It appears people are still having some issues migrating from SDN 3 to 4, but there is a larger concern about EOS/EOL for SDN 3.x. This question is still awaiting an answer at the time of this writing.
Spring Data Neo4j 4 Repository method returns 1 element. How SDN 4 handles multiple relationships of the same kind appears to have changed from 3.x. At least two people have experienced this; have you?
Spring Data Neo4j 4 GraphDatabaseService and result.single(). The way in which certain core Neo4j classes are exposed has changed. Read on to find out more about this case which involves making use of the EmbeddedDriver class.
Eager or lazy load in Spring data neo4j 4. While you can specify the depth of loading relationships/nodes in SDN 4, it is important to note that this is different from eager/lazy loading. Have a look at the succinct answer to this question for a couple more important points.
Legacy Index in Neo4j 3.x
There currently exists an issue in Neo4j 3.x that does not allow for the proper indexing, searching, and sorting of numeric value in manual (legacy) indices. This previously used to work in Neo4j 2.x. Keep an eye on this question (and the related GitHub issue) if this issue affects you.