The Neo4j Manual v1.7.2

License: Creative Commons 3.0

2012-07-09 16:32:36


Table of Contents

Preface
I. Introduction
1. Neo4j Highlights
2. Graph Database Concepts
2.1. What is a Graph Database?
2.2. Comparing Database Models
3. The Neo4j Graph Database
3.1. Nodes
3.2. Relationships
3.3. Properties
3.4. Paths
3.5. Traversal
II. Tutorials
4. Using Neo4j embedded in Java applications
4.1. Include Neo4j in your project
4.2. Hello World
4.3. User database with index
4.4. Basic unit testing
4.5. Traversal
4.6. Domain entities
4.7. Graph Algorithm examples
4.8. Reading a management attribute
4.9. Execute Cypher Queries from Java
5. Cypher Cookbook
5.1. Hyperedges and Cypher
5.2. Basic Friend finding based on social neighborhood
5.3. Co-favorited places
5.4. Find people based on similar favorites
5.5. Multirelational (social) graphs
5.6. A multilevel indexing structure (path tree)
6. Using the Neo4j REST API
6.1. How to use the REST API from Java
7. Extending the Neo4j Server
7.1. Server Plugins
7.2. Unmanaged Extensions
8. The Traversal Framework
8.1. Main concepts
8.2. Traversal Framework Java API
9. Domain Modeling Gallery
9.1. User roles in graphs
9.2. ACL structures in graphs
10. Languages
11. Using Neo4j embedded in Python applications
11.1. Hello, world!
11.2. A sample app using traversals and indexes
III. Reference
12. Capabilities
12.1. Data Security
12.2. Data Integrity
12.3. Data Integration
12.4. Availability and Reliability
12.5. Capacity
13. Transaction Management
13.1. Interaction cycle
13.2. Isolation levels
13.3. Default locking behavior
13.4. Deadlocks
13.5. Delete semantics
13.6. Creating unique nodes
13.7. Transaction events
14. Data Import
14.1. Batch Insertion
15. Indexing
15.1. Introduction
15.2. Create
15.3. Delete
15.4. Add
15.5. Remove
15.6. Update
15.7. Search
15.8. Relationship indexes
15.9. Scores
15.10. Configuration and fulltext indexes
15.11. Extra features for Lucene indexes
15.12. Automatic Indexing
16. Cypher Query Language
16.1. Operators
16.2. Expressions
16.3. Parameters
16.4. Identifiers
16.5. Comments
16.6. Start
16.7. Match
16.8. Where
16.9. Return
16.10. Aggregation
16.11. Order by
16.12. Skip
16.13. Limit
16.14. Functions
16.15. Compatibility
17. Graph Algorithms
17.1. Introduction
18. Neo4j Server
18.1. Server Installation
18.2. Server Configuration
18.3. Setup for remote debugging
18.4. Using the server (including web administration) with an embedded database
18.5. Server Performance Tuning
18.6. Server Installation in the Cloud
19. REST API
19.1. Service root
19.2. Nodes
19.3. Relationships
19.4. Relationship types
19.5. Node properties
19.6. Relationship properties
19.7. Indexes
19.8. Unique Indexes
19.9. Automatic Indexes
19.10. Configurable Automatic Indexing
19.11. Traversals
19.12. Cypher queries
19.13. Built-in Graph Algorithms
19.14. Batch operations
19.15. Cypher Plugin
19.16. Gremlin Plugin
20. Python embedded bindings
20.1. Installation
20.2. Core API
20.3. Indexes
20.4. Cypher Queries
20.5. Traversals
IV. Operations
21. Installation & Deployment
21.1. Deployment Scenarios
21.2. System Requirements
21.3. Installation
21.4. Upgrading
21.5. Usage Data Collector
22. Configuration & Performance
22.1. Introduction
22.2. Performance Guide
22.3. Caches in Neo4j
22.4. JVM Settings
22.5. Compressed storage of short strings
22.6. Compressed storage of short arrays
22.7. Memory mapped IO settings
22.8. Linux Performance Guide
22.9. Linux specific notes
23. High Availability
23.1. Architecture
23.2. Setup and configuration
23.3. How Neo4j HA operates
23.4. High Availability setup tutorial
23.5. Setting up HAProxy as a load balancer
24. Backup
24.1. Embedded and Server
24.2. Online Backup from Java
24.3. High Availability
24.4. Restoring Your Data
25. Security
25.1. Securing access to the Neo4j Server
26. Monitoring
26.1. JMX
V. Tools
27. Web Administration
27.1. Dashboard tab
27.2. Data tab
27.3. Console tab
27.4. The Server Info tab
28. Neo4j Shell
28.1. Starting the shell
28.2. Passing options and arguments
28.3. Enum options
28.4. Filters
28.5. Node titles
28.6. How to use (individual commands)
28.7. Extending the shell: Adding your own commands
28.8. An example shell session
28.9. A Matrix example
VI. Community
29. Community Support
30. Contributing to Neo4j
30.1. Contributor License Agreement
30.2. Writing Neo4j Documentation
30.3. Areas for contribution
30.4. Contributors
A. Manpages
neo4j — Neo4j Server control and management
neo4j-shell — a command-line tool for exploring and manipulating a graph database
neo4j-backup — Neo4j Backup Tool
neo4j-coordinator — Neo4j Coordinator for High-Availability clusters
neo4j-coordinator-shell — Neo4j Coordinator Shell interactive interface
B. Questions & Answers

List of Figures

2.1. RDBMS
2.2. Graph Database as RDBMS
2.3. Key-Value Store
2.4. Graph Database as Key-Value Store
2.5. Document Store
2.6. Graph Database as Document Store
4.1. Hello World Graph
4.2. Node space view of users
4.3. Matrix node space view
4.4. Descendants Example Graph
4.5. Social network data model
8.1. Traversal Example Graph
15.1. Movie and Actor Graph
16.1. Example Graph
19.1. Final Graph
19.2. Final Graph
19.3. Final Graph
19.4. Final Graph
19.5. Final Graph
19.6. Final Graph
19.7. Final Graph
19.8. Final Graph
19.9. Final Graph
19.10. Starting Graph
19.11. Final Graph
19.12. Starting Graph
19.13. Final Graph
19.14. Final Graph
19.15. Starting Graph
19.16. Final Graph
19.17. Final Graph
19.18. Starting Graph
19.19. Final Graph
19.20. Final Graph
19.21. Final Graph
19.22. Final Graph
19.23. Final Graph
19.24. Final Graph
19.25. Final Graph
19.26. Final Graph
19.27. Final Graph
19.28. Final Graph
19.29. Final Graph
19.30. Final Graph
19.31. Final Graph
19.32. Starting Graph
19.33. Final Graph
19.34. Final Graph
19.35. Starting Graph
19.36. Final Graph
19.37. Final Graph
19.38. Final Graph
19.39. Final Graph
19.40. Final Graph
19.41. Final Graph
19.42. Final Graph
19.43. Final Graph
19.44. Final Graph
19.45. Final Graph
19.46. Final Graph
19.47. Final Graph
19.48. Final Graph
19.49. Final Graph
19.50. Final Graph
19.51. Final Graph
19.52. Final Graph
19.53. Final Graph
19.54. Final Graph
19.55. Final Graph
19.56. Final Graph
19.57. Final Graph
19.58. Final Graph
19.59. Final Graph
19.60. Final Graph
19.61. Final Graph
19.62. Final Graph
19.63. Final Graph
19.64. Final Graph
19.65. Final Graph
19.66. Final Graph
19.67. Final Graph
19.68. Final Graph
19.69. Final Graph
19.70. Final Graph
19.71. Final Graph
19.72. Final Graph
19.73. Final Graph
19.74. Final Graph
19.75. Final Graph
19.76. Final Graph
19.77. Final Graph
19.78. Final Graph
19.79. Final Graph
19.80. Final Graph
19.81. Final Graph
19.82. Final Graph
19.83. Final Graph
19.84. Final Graph
19.85. Final Graph
19.86. Final Graph
19.87. Final Graph
19.88. Final Graph
19.89. Final Graph
19.90. Final Graph
19.91. Final Graph
19.92. Final Graph
19.93. Final Graph
19.94. Final Graph
19.95. Final Graph
19.96. Starting Graph
19.97. Final Graph
19.98. Starting Graph
19.99. Final Graph
19.100. Final Graph
23.1. Typical setup when running multiple Neo4j instances in HA mode
26.1. Connecting JConsole to the Neo4j Java process
26.2. Neo4j MBeans View
27.1. Web Administration Dashboard
27.2. Entity charting
27.3. Status indicator panels
27.4. Browsing and manipulating data
27.5. Editing properties
27.6. Traverse data with Gremlin
27.7. Query data with Cypher
27.8. Interact over HTTP
27.9. JMX Attributes
28.1. Shell Matrix Example
30.1. Hello World Graph

List of Tables

3.1. Using relationship direction and type
3.2. Property value types
6.1. Neo4j REST clients contributed by the community.
10.1. Neo4j embedded drivers contributed by the community.
15.1. Lucene indexing configuration parameters
18.1. neo4j-wrapper.conf JVM tuning properties
21.1. Neo4j deployment options
21.2. Neo4j editions
21.3. Upgrade process for Neo4J version
22.1. Guidelines for heap size
23.1. HighlyAvailableGraphDatabase configuration parameters
26.1. MBeans exposed by the Neo4j Kernel
26.2. MBean Memory Mapping
26.3. MBean Locking
26.4. MBean Transactions
26.5. MBean Cache
26.6. MBean Configuration
26.7. MBean Primitive count
26.8. MBean XA Resources
26.9. MBean Store file sizes
26.10. MBean Kernel
26.11. MBean High Availability