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.
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 firstname.lastname@example.org, 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:
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.
About the Author
Michael Hunger & Brian Underwood, Neo4j Team
Michael Hunger has been passionate about software development for a very long time. For the last few years he has been working with Neo Technology on the open source Neo4j graph database filling many roles. As caretaker of the Neo4j community and ecosystem he especially loves to work with graph-related projects, users and contributors. As a developer Michael enjoys many aspects of programming languages, learning new things every day, participating in exciting and ambitious open source projects and contributing and writing software related books and articles.
Brian Underwood wants challenges that give him a chance to make the world kinder, simpler and more interesting. If you can give those challenges to him, you’ll be his new best friend. He loves what he made and the tools he used to make, but his pleasure comes more in the making and the learning of the new. He wants to make useful things that are bold, creative, and beautiful. He wants to make things that have never before existed.