Answering All Your Questions: The Neo4j Knowledge Base


As more and more people discover the joy and the power of using Neo4j, we naturally find that we get more of the same questions and issues popping up.

Some questions require updates and improvements to the documentation (check out our new documentation, by the way). Some things, however, don’t really belong in a manual.

Introducing the Neo4j Knowledge Base


With a growing list of those things we wanted to provide a knowledge base for everything else.

Introducing the Neo4j Knowledge Base!


Learn All about the New Neo4j Knowledge Base (and How You Can Contribute) to Answer Common Questions


The current content covers a wide range of areas from Cypher tuning to import issues or network and hardware setups. You can view entries by area by following the tag listings.

Our plan is for the Knowledge Base to not just be a supplement to the Neo4j documentation, but for it to be a place where we can provide permanent and up-to-date links from our website, StackOverflow, our Slack group, and any other place where people find help and resources for Neo4j.

In order to make the Knowledge Base easy for us to update, we’ve used AsciiDoc with AsciiDoctor, our favorite markup language and toolchain for documentation, GraphGists and in-browser guides.

To ensure that we can easily and quickly update pages we’ve build the ascii_press Ruby gem which allows us to automatically synchronize articles to our website via WordPress, but also to our ZenDesk help center for our enterprise customers.

So if you find yourself with a question about Neo4j, check out the Neo4j Knowledge Base.

Contributing to the Neo4j Knowledge Base


If you don’t find an answer, please make a suggestion by raising an issue on our GitHub repository or sending an email to feedback@neo4j.com, best of course with a draft of the content you think makes sense for that topic. To make it easier, you can fork this template add your content and pass it along. If you are answering questions about Neo4j, keep the answer short and to the point and add a link to the canonical Knowledge Base entry. If there is none, please help us create one, so we can prevent outdated content being highly ranked in search engines causing confusion for our users.

Thanks a lot to Dave Gordon and Dana Canzano for providing most of the helpful content.

If you want to contribute to our Knowledge Base, the basic AsciiDoc source structure for a Knowledge Base article looks like this:

= How do I display the nodes with the most properties
:slug: how-do-i-display-the-nodes-with-the-most-properties
:zendesk-id: 214935268
:author: Dana Canzano
:neo4j-versions: 2.3, 3.0
:tags: cypher
:public:

To display the nodes with the most properties defined, run the following Cypher:

[source,cypher]
----
MATCH (n) 
RETURN labels(n), keys(n), size(keys(n)), count(*) 
ORDER BY size(keys(n)) DESC
----

Representative output is similar to:

[opts="header"]
|===
|labels(n)|keys(n)|size(keys(n))|count(*) 
|[Movie]|[TotalRevenue, year_of_release, name, id]|4|1
...
|===

The first row of output indicates that there is a Label named Movie, which has 4
properties (TotalRevenue, year_of_release, name, id) and there is 1 node defined with
that Label and those properties.
...

This is then rendered as a published article that looks like this:

An Example Article in the Neo4j Knowledge Base


We hope the Knowledge Base is a helpful resource – let us know what you think!


Want to learn more on how relational databases (RDBMS) compare to their graph counterparts? Download this ebook, The Definitive Guide to Graph Databases for the RDBMS Developer, and discover when and how to use graphs in conjunction with your relational database.