Медленные результаты Cypher neo4j при использовании REST GraphDb

Я работаю с neo4j-rest-graphdb и только что попытался использовать Cypher для получения простого результата Node.

CypherParser parser = new CypherParser();
ExecutionEngine engine = new ExecutionEngine(graphDbService);

Query query = parser.parse( "START referenceNode = node (0) " +
                            "MATCH referenceNode-[PRODUCTS_REFERENCE]->products-[PRODUCT]->product " +
                            "RETURN product.productName " +
                            "ORDER BY product.productId " +
                            "SKIP 20"
                            "LIMIT 10");
 ExecutionResult result = engine.execute( query );

 Iterator<Map<String, Object>> iterator = result.javaIterator();

Какова наилучшая практика для повторения результата? Последняя строка заставляет мою службу зависать на ~ 6 секунд. Без итератора в конце приложение работает тихо и быстро. Я также попробовал терминал шифрования webadmin, результаты получены в течение 50 мс. Я делаю что-то неправильно?


person Alebon    schedule 22.11.2011    source источник


Ответы (2)


В вашем случае все шифровальные операции (сопоставление графиков, фильтрация и т. д. будут проходить по сети, что ужасно болтливо и медленно), вы этого не хотите!

Neo4j-rest-graphdb поддерживает удаленное выполнение шифра из коробки:

Просто сделайте что-то вроде этого тестовый пример:

    RestCypherQueryEngine queryEngine = new RestCypherQueryEngine(restGraphDatabase.getRestAPI());      
    final String queryString = "start n=node({reference}) return n";
    Map params = MapUtil.map("reference",0);
    final Node result = (Node) queryEngine.query(queryString, params).to(Node.class).single();
    assertEquals(restGraphDatabase.getReferenceNode(), result);
person Michael Hunger    schedule 23.11.2011

Если я правильно вас понял, graphDbService — это графовая база данных REST, верно?

Если вы хотите использовать Cypher на сервере, вам следует вместо этого использовать CypherPlugin. Посмотрите здесь: http://docs.neo4j.org/chunked/snapshot/cypher-plugin.html

Надеюсь, это поможет,

Андрес

person Andres    schedule 23.11.2011