What's New in Neo4j 2.0 - Andreas Kollegger @ GraphConnect Boston + Chicago 2013

download What's New in Neo4j 2.0 - Andreas Kollegger @ GraphConnect Boston + Chicago 2013

of 28

  • date post

  • Category


  • view

  • download


Embed Size (px)

Transcript of What's New in Neo4j 2.0 - Andreas Kollegger @ GraphConnect Boston + Chicago 2013

  • 1. Innovate. Share. Connect.Boston June 10-11Whats new in Neo4j 2.0Whats new in Neo4j 2.0Andreas Kollegger, Neo TechnologyAndreas Kollegger, Neo Technology@akollegger@akollegger

2. Neo4j 2.0 3 questions: Why? What?How? with just One answer 3. Why 2.0? 4. Why 2.0? Neo4j 1.10 could be an AM radio station Wanted to seem web-savvy before it goes to 3.0 We were in the mood to break some things Really, its because of a shift in focus 5. (0.x) --> (1.x) --> (2.x) 0.x was about embedded java 1.x introduced the server and REST 2.x ease of use, big data, cloudwhich means a focus on... 6. This guy 7. Focus on Cypher Cypher, a carefully crafted language for working withgraphs Declarative, friendly, easy to read and write One language, used everywhere REST for management, Java for plugins, 8. What is new in 2.0? 9. There will besome sad Danessome sad Danes"Once you label me,you negate me.- Sren Kierkegaard 10. Simply: a label identifies a set of nodes Nodes can have multiple labels Find nodes by label Constrain properties and values (lightweight schema) A simple idea, with powerful applicationsIntroducing Node Labels 11. Find friends who like cheeseMATCH (max:People)-[:FRIENDS]->(cheesy: People),(cheesy)-[:LIKE]->(cheese:Things)WHERE max.name = "Max De Marzi"AND cheese.name = "Cheese"RETURN cheesy; 12. Schema Indexing Indexes for labels, based on a property Simple lookups for now Unique indexing coming soon Full-text, other special indexes in planningCREATE INDEX ON :People(name) 13. MERGE operation a combination of MATCH + CREATE replaces CREATE UNIQUE attempts to MATCH, with specified properties and labels if match fails, new graph data is created optional sub-clauses for handling ON CREATE, and ONMATCHMERGE (charlie { name:Charlie Sheen, age:10 })RETURN charlie 14. begin, commit, or rollback a transaction transaction as RESTful resource issue multiple statements per request multiple requests per transaction compact response formatTransactional Cypher 15. Anything else? Performance improvements Breaking changes to some APIs (read CHANGES.txt) Migration of "legacy" indexes (stop STARTing) Mandatory transactions for all DB interactions Improving installers (in progress) Changing everything to be "all Cypher, all the time" 16. How to use labels? 17. Label - to identifyname: Ford PrefectNINO: 122-762-9255HIKE: 415-484-6364UKUKH2G2H2G2 18. Label - to identifyUKUKH2G2H2G2MATCH (ford:H2G2) WHERE ford.HIKE = 415-484-6364 RETURN ford 19. Label - to avoid confusionname: Ford Prefect name: Ford PrefectAlienAlien CarCarMATCH (ford:Alien) WHERE ford.name = Ford Prefect RETURN ford 20. Label - special nodes replace built-in reference node,with domain specific reference nodes4242AnswerAnswer 21. Labels - rules of thumb Use a label to make queries easier to read & write And to improve performance through indexing Start with anything you mightve put in a legacy index Use lightly, as few labels as needed 22. Is that it for 2.0? 23. Well, there is this... 24. What is new in 2.0? Its all about Cypher, starting with Labels, the first significant change in over 12 years Mix in schema indexing Then transactional REST, new clauses, functions A fresh Web UI that is Cypher-focused 25. Thanks :)Any questions?Any questions?Any questions?@akollegger to keep in touch