Adding Social Network Features to a PHP App with Neo4j
In the last part, we learned about Neo4j and how to use it with PHP. In this post, we’ll be using that knowledge to build a real Silex-powered social network application with a graph database.
Nice article, thanks. I’m interesting in graph database and Neo4j including. But have some questions about your article.
You show in article any suggestions, but i don’t understand how they works (magic-magic). How can i customize it’s algorithm. What if i need huge parametric select? Now we are using elasticsearch with some custom plugins for this purposes
What about performance, resources using and clasterization possibility?
And at all, can it be considered as an alternative to elasticsearch for example in fulltext/facet search?
No there is no magic, the suggestions are the nodes that you tell Cypher to return, you can also increase the relationship depth to provide friendOfFriend or friendOfFriendOfFriend suggestions.
Neo4j provide algorithms and it is working very well. However it is a graph database so its purpose is data store and lookup which is not data analysis. You can btw run advanced analysis like explained in this presentation : http://www.slideshare.net/bachmanm/recommendations-with-neo4j-fosdem-2015
Performance is always relative to how optimized is your model and how optimized are your queries. The Neo4j has better performance however when the graph can fit in memory, meaning that it is usual to have at least 16go memory reserved for the Java heap of the Neo4j server.
Clasterization or clusterization ? Neo4j Enterprise has an HighAvailibility mode, more informations in the documentation.
Currently, no, the fulltext feature are possible but are using an index that will be deprecated in the future. So before Neo4j 2.3 is released, ES is a common add-on we use with neo4j.