Продолжение вебинара
Спасибо всем за участие в вебинаре, я был в восторге от посещаемости и замечательных дискуссий в чате.
Как и было обещано, мы опубликуем этот пост, чтобы ответить на вопросы, на которые не были даны ответы, и предоставим удобное место для ознакомления с ресурсами, упомянутыми на вебинаре.
Ваши вопросы
Олег Окунь: Как легко можно перейти с графической базы данных на неграфовую базу данных NoSQL?
Экспортируйте свои данные с помощью любого из API (Java, REST, Cypher) и импортируйте их на другой стороне.
Александр Мейно: Должны ли мы беспокоиться о производительности при определении шаблонов шифров?
Есть некоторые проблемы, связанные с производительностью шифров в Neo4j 1.9, сейчас попробуйте сосредоточиться на простом шаблоне с одним или двумя связанными узлами и необязательными отношениями. Вы можете использовать шаблоны как выражения вместо необязательных отношений
Олег Окунь: Можете ли вы указать на реализацию Cypher некоторых алгоритмов машинного обучения / интеллектуального анализа данных?
Я не знаю ни одной, может быть интересная тема, чтобы внести свой вклад. В руководстве Neo4j есть несколько примеров моделирования данных .
Мартин: Будут ли будущие версии Cypher обратно совместимы?
Старые версии синтаксического анализатора Cypher поддерживаются до двух основных версий Neo4j, парсер oder может быть активирован путем добавления префикса, подобного CYPHER 1.7, к вашему запросу.
Александр Мейно: Предвидите ли вы «стандартный» язык запросов графов в ближайшие годы (или десятилетия)?
Не совсем, для нас мы ориентируемся на то, чтобы позволить нашим пользователям и пользователям сообщества решать их проблемы. Мы обсуждали это с другими поставщиками, но пока рано соглашаться со стандартом, пока мы все так заняты и сосредоточены на разработке продукта.
Аджинкья: Можете ли вы обсудить причины, по которым было принято решение использовать шифр с использованием Scala?
Это более длительное обсуждение, о котором я рассказывал в выступлении на Geekout Tallinn, см. Раздел ресурсов ниже.
Слайды
Запись видео
0830 — Cypher и Neo4j от Neo Technology на Vimeo .
Больше ресурсов
- Cypher Шпаргалка
- Часть Cypher из руководства по моделированию данных вручную с консолью запросов в реальном времени
- Консоль Neo4j — Песочница, Gist & Repl
- Суть: Как использовать Cypher из других языков программирования
- Драйвер Neo4j Cypher JDBC
- Набор данных сессий конференции от NOSQL-NOW
- Class-Graph: использование Neo4j для анализа качества программного обеспечения
- Примеры наборов данных для распаковки в каталоге data / graph.db вашего сервера
- Cypher внутренняя презентация видео
Отличный Вебинар Чат!
Чат во время вебинар был здоров, спасибо много к Andreas Kollegger для ответа на все вопросы.
Hassan: Washington DC here Chris Skardon: evening from Cornwall, UK Matt Taylor: hello from Chicago ASHISH M: wow! looks like we have an internnational crowd on today!! Anyone from Australia? MilanSK: eveninig from Humenne, Slovakia Harald: Frankfurt, Germany Martin: Hi from Spain (and Gibraltar) ... Alexandre Meynaud: Yes, the great thing about Cypher is that you express *what* you want to retreive from the graph, and not how Aki Ristkari: It's easy to visualize and you don't have to explain any table-row-kill_me_now-hibernate stuff to people. That marketing term 'Whiteboard friendly' is actually very accurate Andreas Kollegger: @Hisao you can't do sub-queries, but you can "chain" queries using a "WITH" clause to sort-of pipe the results to another query instead of returning them Amit: is there a way to indicate in cypher to prune conditionally like we can using the traverser API Hisao Motoyama: ok, thanks Andreas Kollegger: @Ivan the query performance is not affected by the database size, though it is affected by an increase in "local" data Alex Guerrieri: I love how intuitive it is ... IvanTraveso: nice presentation. thanks! Alexandre Meynaud: Great presentation Michael, thanks a lot Wes: Thanks a lot guys. Andreas Kollegger: thanks everyone, thanks Michael! James Camfield: cheers Chris Skardon: Thanks! Mylène: Thanks. this was absolutely cool! Aki Ristkari: Thanks for the show
Как использовать Cypher из других языков программирования
Эта тема настолько обширна, что мы рассмотрим ее в отдельном блоге, а пока вот ссылка на суть .
ExecutionEngine engine = new ExecutionEngine(graphDB); String query = "start n=node:Person(name={name}) match n-[:ACTS_IN]->movie<-[:ACTS_IN]-friend return friend"; ExecutionResult result = engine.query(query, map("name", "Keanu"); for (Map<String,Object> row : result) { Node friend = row.get("friend"); } Iterator<Node> friends = result.columnAs("friend"); for (Node friend : friends) { friend.getProperty("name");
}