Bine ati venit la Neografie

Neografia este un subtire Ruby wrapper pentru Neo4j Rest API, pentru mai multe informatii:

  • Notiuni introductive despre serverul Neo4j
  • Neo4j Rest API Reference

Daca doriti sa utilizati intreaga putere a Neo4j, veti dori sa utilizati JRuby si excelenta bijuterie Neo4j.rb la https://github.com/andreasronge/neo4j de Andreas Ronge

Instalare

Gemfile

Adaugati neografie la fisierul dvs. Gem:

Si rulati Bundler:

Manual:

Sau instalati neografia manual:

$ gem instalati „neografia”

Si solicitati bijuteria din codul dvs. Ruby:

necesita „rubygems” necesita „neografie”

Cititi wiki pentru informatii despre dependente.

Sarcinile rake sunt disponibile pentru descarcarea, instalarea si rularea Neo4j.

Utilizare

Configurare si initializare

Configurati Neografia dupa cum urmeaza:

# acestea sunt valorile implicite: Neography.configure do | config | config.protocol = “http” config.server = “localhost” config.port = 7474 config.directory = “” # prefixeaza aceasta cale cu ‘/’ config.cypher_path = “/ cypher” config.gremlin_path = “/ ext / GremlinPlugin / graphdb / execute_script “config.log_file =” neography.log “config.log_enabled = false config.slow_log_threshold = 0 # timp in ms pentru inregistrarea interogarilor config.max_threads = 20 config.authentication = zero # config” basic “sau” digest ” .username = zero config.password = zero config.parser = MultiJsonParser config.http_send_timeout = 1200 config.http_receive_timeout = 1200 config.persistent = final adevarat

Apoi initializati o instanta Rest:

@neo = Neography :: Rest.new @neo = Neography :: Rest.new ({: authentication => ‘basic’,: username => “neo4j”,: password => “swordfish”}) @neo = Neography: : Rest.new („http: // neo4j: swordfish @ localhost: 7474”)

Pentru a suprascrie aceste metode implicite si alte metode de initializare, consultati pagina de configurare si initializare din Wiki.

API REST

Neografia sprijina crearea si recuperarea de noduri si relatii prin interfata Neo4j REST. Suporta indexuri, scripturi Gremlin, interogari Cypher si operatii de lot.

O parte din aceasta functionalitate este prezentata aici, dar toate acestea sunt explicate in urmatoarele pagini Wiki:

2.0 Caracteristici numai:

  • Indexuri schema – Creati, obtineti si stergeti indexuri schema.
  • Etichete nod – Creati, obtineti si stergeti etichete nod.
  • Tranzactii – Incepeti, adaugati la, comiteti, tranzactii de revenire.

1.8+ caracteristici:

Cateva exemple de utilizare:

# Crearea nodului: node1 = @ neo.create_node (“age” => 31, “name” => “Max”) node2 = @ neo.create_node (“age” => 33, “name” => “Roel”) # Proprietati nod: @ neo.set_node_properties (node1, {“weight” => 200}) # Relatii intre noduri: @ neo.create_relationship (“coding_buddies”, node1, node2) # Obtineti relatii de nod: @ neo.get_node_relationships (nod2, “in”, “coding_buddies”) # Utilizati indexuri: @ neo.add_node_to_index (“people”, “name”, “max”, node1) @ neo.get_node_index (“people”, “name”, “max”) # Batches : @ neo.batch [: create_node, {“name” => “Max”}], [: create_node, {“name” => “Marc”}] # Interogari Cypher: @ neo.execute_query (“start n = nod (0) return n “)

Puteti utiliza, de asemenea, bijuteria cypher in loc sa scrieti cypher ca text.

nod (1) .de iesire (rel (: prieteni) .unde {| r | r [: de cand] == 1994})

ar deveni:

START me = node (1) MATCH (eu) – [friend_rel: `friends`] -> (friends) WHERE (friend_rel.since = 1994) RETURNARE prieteni

Acesta este doar un mic esantion al API-ului complet, consultati documentatia Wiki pentru API-ul complet.

Neografia ridica erori REST API ca erori Ruby, consultati pagina wiki despre erori. ( Nota : versiunile mai vechi ale Neografiei nu au ridicat erori!)

Faza 2

Incercarea de a imita API-ul Neo4j.rb.

Acum returnam obiecte complete. Proprietatile nodului sau ale relatiei pot fi accesate direct (node.name). ID-ul Neo4j este disponibil utilizand node.neo_id.

O parte din aceasta functionalitate este prezentata aici, dar toate acestea sunt explicate in urmatoarele pagini Wiki:

  • Noduri – Creati, incarcati si stergeti noduri.
  • Proprietati nod – Adaugati, obtineti si eliminati proprietati nod.
  • Relatii nod – Creati si recuperati relatii nod.
  • Cai noduri – Obtine cai intre noduri.
# creati doua noduri: n1 = Neografie :: Nod.create (“varsta” => 31, “nume” => “Max”) n2 = Neografie :: Nod.create (“varsta” => 33, “nume” = > “Roel”) n1.exista? # => adevarat # obtineti si modificati unele proprietati: n1 [: varsta] # => 31 n1.name # => “Max” n1 [: varsta] = 32 # modificare proprietate n1.weight = 190 # proprietate noua n1.age = zero # eliminati proprietatea # adaugati o relatie intre noduri: new_rel = Neografie :: Relationship.create (: coding_buddies, n1, n2) # eliminati o relatie: new_rel.del # adaugati o relatie pe noduri: n1.outgoing (: coding_buddies) << n2 # traversare mai avansata a relatiei: n1.outgoing (: friends) # Obtineti noduri legate de relatia de prieteni de iesire n1.outgoing (: friends) .depth (2) .include_start_node # Obtineti n1 si noduri legate de prieteni si prieteni de prieteni n1.rel? (:

Acesta este doar un mic esantion al API-ului complet, consultati documentatia Wiki pentru API-ul complet.

Mai mult

Exemple

Un exemplu de cod.

Testarea

Cateva sfaturi despre testare.

Proiecte Neo4j conexe

Complement la Neografie sunt:

  • Adaptor Neo4j Active Record de Nikhil Lanjewar
  • Neologie de Carlo Alberto Degli Atti
  • Neoid de Elad Ossadon

O alternativa la Neografie este Architect4r de Maximilian Schulz

Neografia in salbaticie

  • Dovedit
  • Neovigator il furnizeaza la https://github.com/maxdemarzi/neovigator
  • Neoflix il furnizeaza la https://github.com/maxdemarzi/neoflix

Notiuni de baza cu Neografia

  • Notiuni introductive despre Ruby si Neo4j
  • Vizualizare grafica cu Neo4j
  • Neo4j pe Heroku

Contribuind

Va rugam sa creati o noua problema daca aveti probleme.

Contribuiti la patch-uri prin cereri de extragere.

Ajutor

Daca abia incepeti sau aveti nevoie de ajutor, trimiteti-mi un e-mail la [email protected].

Verificati blogul meu la http://maxdemarzi.com, unde am mai multe exemple de Neografie.

Licente

  • Neografie – MIT, consultati fisierul LICENTA http://github.com/maxdemarzi/neography/tree/master/LICENTA.
  • Lucene – Apache, vezi http://lucene.apache.org/java/docs/features.html
  • Neo4j – Software gratuit / licenta comerciala dubla, consultati http://neo4j.org