Criando sistemas de recomendação com neo4j

944 views 22 slides Apr 01, 2017
Slide 1
Slide 1 of 22
Slide 1
1
Slide 2
2
Slide 3
3
Slide 4
4
Slide 5
5
Slide 6
6
Slide 7
7
Slide 8
8
Slide 9
9
Slide 10
10
Slide 11
11
Slide 12
12
Slide 13
13
Slide 14
14
Slide 15
15
Slide 16
16
Slide 17
17
Slide 18
18
Slide 19
19
Slide 20
20
Slide 21
21
Slide 22
22

About This Presentation

Slides da palestra realizada pelo codigosimples.net sobre Neo4j


Slide Content

Introdução ao Neo4j – 3.x ( graphs )[:ARE]›( everywhere )

Jhonathan S. Soares MVP Microsoft – Visual Studio Neo4j Top 50 Certified Developer Criador do blog CodigoSimples.net

Introdução ao Neo4j Tipos de NOSQL Já somos 255 e crescendo \o/ Colunar | Wide Column | Column Families Hadoop – Hbase – Cassandra – BigTable Orientado à Documentos| Document Store ElasticSearch – OrientDB – MongoDB - DocumentDB Chave Valor | Tuple Store | Key Value DynamoDB – Azure Table – Redis - MemcacheDB Orientado à Grafos | Graph Databases Neo4j – ArangoDB – OrientDB - Titan

Introdução ao Neo4j Graph Databases Somos diferentes? Só você Just you Diferentão Vanguardista Pica das galáxias Está diretamente relacionado a um modelo de dados estabelecido, o modelo de grafos.

Introdução ao Neo4j Graph Databases Representar os dados e / ou o esquema dos dados como grafos dirigidos.

Introdução ao Neo4j Dijkstra Lei do menor caminho ou caminho com menor peso.

Introdução ao Neo4j Graph Databases Porém, por meio dos relacionamentos inerentes aos grafos, estas consultas tornam-se mais simples e diretas.

Introdução ao Neo4j Neo4j é feito do que?​ Nós, Labels , Relacionamentos e Propriedades​ Nós são os registros Labels são conjunto agrupado de nós Relacionamentos são as conexões entre os nós Propriedades são definições de um nós ( Direção, Agrupamento etc )

Instalação e Configuração Plataformas suportadas​ Windows Linux/Unix Mac OSX Versões Community Edition Enterprise Edition

Introdução à Cypher Query Conceitos Cypher é uma linguagem declarativa, de inspiração SQL para descrever padrões em gráficos utilizando uma sintaxe ascii -art. Ela nos permite selecionar, inserir, atualizar ou excluir dados do gráfico sem a necessidade de descrever exatamente como fazê-lo.

Introdução à Cypher Query Conceitos MATCH ( p:pessoa { idade : 25}) RETURN p MATCH é o nosso comando de seleção p:pessoa é o nosso conjunto de dados {idade:25} é o nosso where return p é quais registros eu quero que retorne

Introdução à Cypher Query Conceitos MATCH ( p:pessoa { idade : 25}) RETURN p SELECT * FROM Pessoa WHERE idade = 25 MATCH ( p:pessoa { name:’Anakin ’})-[: visitou ]->(p) RETURN p SELECT p.* FROM Planetas p INNER JOIN VisitouPlaneta v ON p.id = v.planeta_id INNER JOIN Pessoa pe ON v.pessoa_id = pe.id WHERE pe.nome = 'Anakin'

Linguagens de programação Neo4j se integra nativamente com: Java C# Python Ruby Javascript PHP Exemplo com c# : github.com/ Readify /Neo4jClient/ wiki / cypher-examples

Linguagens de programação Imagine a seguinte classe em c#: public class User { public long Id { get; set; } public string Name { get; set; } public int Age { get; set; } public string Email { get; set; } }

Linguagens de programação Retornar todos usuários Cypher : MATCH ( user:User ) RETURN user C #: graphClient.Cypher .Match("( user:User )") . Return ( user => user.As < User >()) . Results

Linguagens de programação Retornar usuário específico Cypher : MATCH ( user:User ) WHERE user.Id = 1234 RETURN user C#: graphClient.Cypher .Match("( user:User )") . Where (( User user ) => user.Id == 1234) . Return ( user => user.As < User >()) . Results

Aplicações e Usos Fraud Detection Real-time recommendations Social network Identity and access management Network ant IT operations

Hora do Demo

Hora do Demo Match Limit Insert Shortestpath Execution Plan WebAdmin Features “Escondidas”

Features “Escondidas” :play query template :play sysinfo : config EXPLAIN + query PROFILE + query

Dúvidas? ( graphs )[:ARE]›( everywhere )

FIM! http ://codigosimples.net