1 Introdução ao APOC
APOC significa Awesome Procedures on Cypher, que é a maior e mais amplamente usada biblioteca de extensão para Neo4j e uma biblioteca de utilitários padrão para procedimentos e funções do Neo4j. Inclui mais de 450 programas padrão, fornecendo utilitários, transformações, atualizações de gráficos e muito mais. Eles são bem suportados e fáceis de executar como funções independentes ou incluídos em consultas do Cypher.
2 Precauções
Como o APOC depende da API interna do Neo4j, você precisa usar uma versão correspondente do APOC para sua instalação do Neo4j. Certifique-se de que os dois primeiros números de versão correspondam entre Neo4j e APOC. A seguir está a tabela de correspondência de versão APOC e Neo4j
versão apoc | versão neo4j |
---|---|
4.4.0.1 | 4.4.0 (4.3.x) |
4.3.0.4 | 4.3.7 (4.3.x) |
4.2.0.9 | 4.2.11 (4.2.x) |
4.1.0.10 | 4.1.11 (4.1.x) |
4.0.0.18 | 4.0.12 (4.0.x) |
3.5.0.15 | 3.5.30 (3.5.x) |
3.4.0.8 | 3.4.18 (3.4.x) |
3.3.0.4 | 3.3.9 (3.3.x) |
3.2.3.6 | 3.2.14 (3.2.x) |
3.1.3.9 | 3.1.9 (3.1.x) |
3.0.8.6 | 3.0.12 (3.0.x) |
3.5.0.0 | 3.5.0-beta01 |
3.4.0.2 | 3.4.5 |
3.3.0.3 | 3.3.5 |
3.2.3.5 | 3.2.3 |
3.1.3.8 | 3.1.5 |
3 processo de instalação
-
Baixe o jar binário e coloque-o na pasta local $NEO4J_HOME$/plugins
-
Adicione o seguinte ao arquivo $NEO4J_HOME$/conf/neo4j.conf:
-
Por motivos de segurança, o Neo4j desativa o uso de APIs internas por padrão. Eles podem ser ativados especificando a configuração em $NEO4J_HOME/conf/neo4j.conf)
dbms.security.procedures.unrestricted=apoc.*
-
Lista de permissões os procedimentos e funções que geralmente são carregados no apoc (na lista de programas que podem ser executados)
dbms.security.procedures.whitelist=apoc.coll.*,apoc.load.*
-
-
Reinicie o Neo4j para confirmar se a instalação foi bem-sucedida. Se o número da versão APOC for retornado, a instalação foi bem-sucedida
RETURN apoc.version() as version
4 Use amostra apoc
Função de união em cypher apoc
Na biblioteca APOC, apoc.coll.union
as funções podem ser utilizadas para realizar a operação de união de conjuntos. apoc.coll.union
função para mesclar duas ou mais coleções em uma nova coleção contendo todos os elementos.
Aqui está um exemplo de uso de apoc.coll.union
uma função para executar uma operação de união definida:
cypherCopy codeMATCH (p1:Person {name: 'John'})
MATCH (p2:Person {name: 'Alice'})
RETURN apoc.coll.union(p1.hobbies, p2.hobbies) AS mergedHobbies
No exemplo acima, estamos usando a cláusula MATCH para corresponder aos nós "Person" chamados "John" e "Alice", respectivamente. Em seguida, na cláusula RETURN, usamos apoc.coll.union
uma função para mesclar as propriedades da coleção "hobbies" desses dois nós em uma nova coleção e nomeamos o resultado como "mergedHobbies".
Os resultados da consulta retornarão uma lista contendo os hobbies mesclados, que é a união das coleções "hobbies" dos dois nós "Person".
Função de interseção no cypher apoc
No Cypher, INTERSECTION
as palavras-chave podem ser usadas para executar a operação de interseção de conjuntos. INTERSECTION
Palavras-chave são usadas para encontrar elementos comuns entre duas ou mais coleções.
Aqui está INTERSECTION
um exemplo de uso de palavras-chave para executar operações de interseção definidas:
cypherCopy codeMATCH (p1:Person {name: 'John'})
MATCH (p2:Person {name: 'Alice'})
RETURN apoc.coll.intersection(p1.hobbies, p2.hobbies) AS commonHobbies
No exemplo acima, estamos usando a cláusula MATCH para corresponder aos nós "Person" chamados "John" e "Alice", respectivamente. Em seguida, na cláusula RETURN, usamos apoc.coll.intersection
uma função para localizar os elementos comuns entre as propriedades da coleção "hobbies" desses dois nós e nomeamos o resultado como "commonHobbies".
O resultado da consulta retornará uma lista de interesses comuns, que é a interseção das coleções "hobbies" dos dois nós "Person".