2014-08-28 97 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提供