簡體   English   中英

Neo4j:從給定的起始節點查找涉及所有關系的所有路徑

[英]Neo4j: From given start node find all paths that touch all relations

使用Neo4j,我正在研究一個非常簡單的模型,該模型由五個節點A..E和它們之間的八個關系組成。 對於給定的起始節點,我想獲取所有涉及模型每個關系的路徑。 每個關系必須被觸摸一次。

我的代碼如下所示:

TraversalDescription traversal = Traversal.description().uniqueness( Uniqueness.RELATIONSHIP_GLOBAL);

Traverser t = traversal.traverse( getNode("C"));
for ( Path position : t )
{
    if( position.length() == 8 ) {
        System.out.println("Solution found");
    }
}

我的問題是,遍歷器不會返回長度為8的所有可能路徑,而僅返回一個。

有沒有辦法告訴Traverser或TraversalDescription拋出所有路徑?

謝謝,奧利

您是否嘗試過使用Cypher查詢? 它可能像

start n = node:someIndex(name='C') match p=n-[RELATION*8]->(x) return x, length(p) 

您也可以嘗試使用Evaluators ,它可以幫助您找到一定深度的路徑。

Evaluation evaluate(Path path) {
return path.length() == 8 ? Evaluation.INCLUDE_AND_PRUNE : Evaluation.EXCLUDE_AND_CONTINUE);
 }

希望對您有幫助。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM