2014-08-28 100 views
1

这是我对Neo4j的第一个应用程序,我喜欢用穿越API获得更好的性能和易用性,但是当我看了看剩下的遍历大部分的操作我被难倒没有实现,我正在使用spring-data-neo4j-rest(3.1.2)neo4j核心和核心版本os 2.0 Ex。从Resttraversal(SRC只有两个评估实现)我使用的是正确的版本,如果没有哪一个版本支持更多的这一个休息穿越Neo4j的java.lang.UnsupportedOperationException

public RestTraversalDescription evaluator(PathEvaluator evaluator) { 
     if (evaluator == Evaluators.all()) return add("return_filter",toMap("language","builtin", "name","all")); 
     if (evaluator == Evaluators.excludeStartPosition()) return add("return_filter",toMap("language","builtin", "name","all_but_start_node")); 
     throw new UnsupportedOperationException("Only builtin paths supported"); 
    } 


@Override 
    public TraversalDescription expand(PathExpander<?> expander) { 
     throw new UnsupportedOperationException(); 
    } 

    @Override 
    public <STATE> TraversalDescription expand(PathExpander<STATE> expander, InitialStateFactory<STATE> initialState) { 
     throw new UnsupportedOperationException(); 
    } 

需要帮助的,我觉得我浪费了不到一天的浏览的解决方案的更多....

回答

1

对于遍历来说,获得最大性能的推荐方法是使用内部使用Traversal APIunmanaged extensions

你bascially编写Java(或Groovy/Clojure的/斯卡拉/ ...),使用JAX-RS注解类。您的代码被打包为jar并部署到Neo4j的plugins目录中。注释的方法将成为Neo4j服务器的新REST端点。

REST遍历,你打算使用它们是一个比较老的产品中没有被广泛使用的功能。

+0

感谢斯特凡格局!让我尝试。但是,即使内部使用了Traversal API,程序员也必须根据路径评估来管理遍历应该如何进行,但RestTraversal中的大多数方法都未实现。如何解决这个问题?或者您有样本可以做一个简单的遍历使用非托管扩展或任何API文档,可以帮助? – 2014-08-29 08:14:04

0

由于我升级到的Neo4j 2.3,我使用暗号作为非托管扩展的一部分。看来工作效率目前也实现匹配,灵活性,CYPHER提供