Медленные результаты Cypher neo4j при использовании REST GraphDb - PullRequest
1 голос
/ 23 ноября 2011

Я работаю с 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 cypher, результаты получены в течение 50 мс.Я делаю что-то не так?

Ответы [ 2 ]

5 голосов
/ 23 ноября 2011

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

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);
0 голосов
/ 23 ноября 2011

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

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

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

Andrés

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...