2013-02-13 3 views
0

Я только начал смотреть на neo4j, чтобы использовать его для моего проекта, связанного с социальной сетью. Во время этого я наткнулся на следующий код:Как я могу получить количество узлов базы данных диаграммы Neo4j из java и можем ли мы хранить и повторно использовать графический диск с диска?

https://github.com/neo4j/neo4j/blob/1.9.M04/community/embedded-examples/src/main/java/org/neo4j/examples/EmbeddedNeo4jWithIndexing.java 

При переходе через него (см ссылку выше для кода), я изо всех сил, чтобы узнать, как получить общее количество узлов, добавленных к данному graphDb. Есть ли способ найти это (общее количество узлов) с помощью graphDb или nodeIndex или referenceIndex или что-нибудь еще? Если да, то как?

Мне также нужна помощь, чтобы знать, как хранить график на любом заданном пути на диске? Как загрузить этот сохраненный graphdb и выполнить на нем операции, например, поиск узла/отношения и т. Д.?

(Есть несколько файлов типа * .db, * .id, * .keys и т. Д., Созданных при заданном DB_PATH, когда выполняется код выше. Что все эти файлы полезны для? ? если да, то как мы можем их использовать?)

Как мы можем получить доступ к этому graphDb с веб-интерфейсов, например, приборной панели по адресу http://localhost:7474/webadmin/ или данных по адресу http://localhost:7474/db/data/?

Пожалуйста, дайте мне знать, в случае, если вам нужна конкретная информация, чтобы помочь мне ..

Спасибо, Нитин.

ответ

3

Phewww! Это много вопросов для одной записи ...

Чтобы получить общее количество узлов и связей в вашей БД, используйте:

NodeManager nodeManager = ((GraphDatabaseAPI) graphDb).getDependencyResolver().resolveDependency(
      NodeManager.class); 

long currentRelationships = nodeManager.getNumberOfIdsInUse(Relationship.class); 
long currentNodes = nodeManager.getNumberOfIdsInUse(Node.class); 

Чтобы изменить путь графа БД, просто передать путь к методу GraphDatabaseFactory(). newEmbeddedDatabase. В приведенном выше примере вы можете просто установить DB_PATH, например. до /home/youruser/neo4j.

Чтобы получить доступ к своей БД с помощью webadmin, скачайте neo4j, измените свойство org.neo4j.server.database.location в файле conf/neo4j-server.properties и укажите его на путь вашей БД и запустите сервер.

+0

Большое спасибо @James. О, 'GraphDatabaseFactory(). NewEmbeddedDatabase (DB_PATH)', загрузит ли база данных, если она уже присутствует на заданном пути? Если нет, как мы можем загрузить его вместо создания нового? И какие файлы создаются по заданному пути? Можете ли вы сослаться на любую ссылку, где я могу найти такую ​​конкретную документацию/учебник (кроме 'http: // docs.neo4j.org')? –

+0

Как мы видим, в коде есть 100 (+1 опорный узел) Узлы, добавленные в graphDb. Но тогда, почему я получаю 'currentRelationships = 300' и' currentNodes = 304' в качестве вывода? –

+0

БД загружается или открывается, если она уже существует. – James

5

Для начала работы с Neo4j Embedded и Java API см:

http://docs.neo4j.org/chunked/milestone/tutorials-java-embedded.html

Получением правильных чисел узлов и отношений:

IteratorUtil.count(GlobalGraphOperations.at(gdb).getAllNodes()) 
IteratorUtil.count(GlobalGraphOperations.at(gdb).getAllRelationships()) 

Для доступа к встроенным базам данных графа с интегрированным Neo4j сервер, см. http://docs.neo4j.org/chunked/milestone/server-embedded.html