The Neo4j Manual v1.5.3

License: Creative Commons 3.0

2012-05-17 12:31:07


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. Traversal
4.5. Domain entities
4.6. Graph Algorithm examples
4.7. Uniqueness of Paths in traversals
4.8. Reading a management attribute
5. Using Neo4j embedded in Python applications
5.1. Hello, world!
5.2. A sample app using traversals and indexes
6. Extending the Neo4j Server
6.1. Server Plugins
6.2. Unmanaged Extensions
7. Domain Modeling Gallery
7.1. User roles in graphs
7.2. ACL structures in graphs
8. Using the Neo4j REST API
8.1. How to use the REST API from Java
9. The Traversal Framework
9.1. Main concepts
9.2. Traversal Framework Java API
III. Reference
10. Installation & Deployment
10.1. Deployment Scenarios
10.2. System Requirements
10.3. Installation
10.4. Upgrading
10.5. Usage Data Collector
11. Configuration & Performance
11.1. Introduction
11.2. Performance Guide
11.3. Caches in Neo4j
11.4. JVM Settings
11.5. File system tuning for high IO
11.6. Compressed storage of short strings
11.7. Compressed storage of short arrays
11.8. Memory mapped IO settings
11.9. Linux Performance Guide
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. Indexing
14.1. Introduction
14.2. Create
14.3. Delete
14.4. Add
14.5. Remove
14.6. Update
14.7. Search
14.8. Relationship indexes
14.9. Scores
14.10. Configuration and fulltext indexes
14.11. Extra features for Lucene indexes
14.12. Batch insertion
14.13. Automatic Indexing
15. Graph Algorithms
15.1. Introduction
16. Cypher Query Language
16.1. Parameters
16.2. Identifiers
16.3. Start
16.4. Match
16.5. Where
16.6. Return
16.7. Aggregation
16.8. Order by
16.9. Skip
16.10. Limit
16.11. Functions
16.12. Cypher Cookbook
17. Neo4j Server
17.1. Server Installation
17.2. Server Configuration
17.3. Setup for remote debugging
17.4. Using the server (including web administration) with an embedded database
17.5. Server Performance Tuning
18. REST API
18.1. Service root
18.2. Nodes
18.3. Relationships
18.4. Relationship types
18.5. Node properties
18.6. Relationship properties
18.7. Indexes
18.8. Auto-Indexes
18.9. Configurable Auto-Indexing
18.10. Traversals
18.11. Built-in Graph Algorithms
18.12. Batch operations
18.13. Cypher Plugin
18.14. Gremlin Plugin
19. High Availability
19.1. Architecture
19.2. Setup and configuration
19.3. How Neo4j HA operates
19.4. High Availability setup tutorial
19.5. Setting up HAProxy as a load balancer
20. Python embedded bindings
20.1. Installation
20.2. Core API
20.3. Traversals
20.4. Indexes
IV. Operations
21. Backup
21.1. Embedded and Server
21.2. Online Backup from Java
21.3. High Availability
21.4. Restoring Your Data
22. Security
22.1. Securing access to the Neo4j Server
23. Monitoring
23.1. JMX
V. Tools
24. Web Administration
24.1. Dashboard tab
24.2. Data tab
24.3. Console tab
24.4. The Server Info tab
25. Neo4j Shell
25.1. Starting the shell
25.2. Passing options and arguments
25.3. Enum options
25.4. Filters
25.5. Node titles
25.6. How to use (individual commands)
25.7. Extending the shell: Adding your own commands
25.8. An example shell session
25.9. A Matrix example
VI. Community
26. Community Support
27. Contributing to Neo4j
27.1. Writing Neo4j Documentation
A. Manpages
neo4j — Neo4j Server control and management
neo4j-shell — a command-line tool for exploring and manipulating a graph database
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. User roles node space view
4.5. Social network data model
4.6. Descendants Example Graph
9.1. Hello World Graph
16.1. Example Graph
18.1. Final Graph
18.2. Final Graph
18.3. Final Graph
18.4. Starting Graph
18.5. Final Graph
18.6. Starting Graph
18.7. Final Graph
18.8. Final Graph
18.9. Final Graph
18.10. Final Graph
18.11. Starting Graph
18.12. Final Graph
18.13. Final Graph
18.14. Final Graph
18.15. Final Graph
18.16. Final Graph
18.17. Final Graph
18.18. Final Graph
18.19. Final Graph
18.20. Final Graph
18.21. Final Graph
18.22. Final Graph
18.23. Final Graph
18.24. Final Graph
18.25. Final Graph
18.26. Final Graph
18.27. Final Graph
18.28. Final Graph
18.29. Final Graph
18.30. Final Graph
18.31. Final Graph
18.32. Final Graph
18.33. Final Graph
18.34. Final Graph
18.35. Final Graph
18.36. Final Graph
18.37. Final Graph
18.38. Final Graph
18.39. Final Graph
18.40. Final Graph
18.41. Final Graph
18.42. Final Graph
18.43. Final Graph
18.44. Final Graph
18.45. Final Graph
18.46. Final Graph
18.47. Final Graph
18.48. Final Graph
18.49. Final Graph
18.50. Final Graph
18.51. Final Graph
18.52. Final Graph
18.53. Final Graph
18.54. Final Graph
18.55. Final Graph
18.56. Final Graph
18.57. Final Graph
18.58. Final Graph
19.1. Typical setup when running multiple Neo4j instances in HA mode
23.1. Connecting JConsole to the Neo4j Java process
23.2. Neo4j MBeans View
24.1. Web Administration Dashboard
24.2. Entity charting
24.3. Status indicator panels
24.4. Browsing and manipulating data
24.5. Editing properties
24.6. Traverse data with Gremlin
24.7. Query data with Cypher
24.8. Interact over HTTP
24.9. JMX Attributes
27.1. Hello World Graph

List of Tables

3.1. Using relationship direction and type
3.2. Property value types
10.1. Neo4j deployment options
10.2. Neo4j editions
10.3. Upgrade process for Neo4J version
11.1. Guidelines for heap size
14.1. Lucene indexing configuration parameters
17.1. neo4j-wrapper.conf JVM tuning properties
19.1. HighlyAvailableGraphDatabase configuration parameters
23.1. MBeans exposed by the Neo4j Kernel
23.2. MBean Memory Mapping
23.3. MBean Locking
23.4. MBean Transactions
23.5. MBean Cache
23.6. MBean Configuration
23.7. MBean Primitive count
23.8. MBean XA Resources
23.9. MBean Store file sizes
23.10. MBean Kernel
23.11. MBean High Availability