簡體   English   中英

Neo4J Traversal跳過關系類型

[英]Neo4J Traversal Skipping Relationship Types

我正在使用我自己的評估器在Neo4J中執行自定義遍歷。 在遍歷中有兩個節點,由兩個不同的關系連接。 我所看到的是,在遍歷過程中只會走兩條關系中的一條。

但是,我的自定義評估會根據兩個關系是否存在來更改其行為。

似乎在遍歷期間,Neo4J維護一組訪問節點,並且如果候選路徑在已經訪問過的節點處結束,則該路徑永遠不會發送給我的評估者。 有沒有解決的辦法? 如何讓自定義評估程序檢查節點的每個可能路徑?

這是一個簡單的例子:

假設圖形如下所示:

             E----D----A====B----C

遍歷從A開始.A有兩種不同的關系將它與B(兩種不同類型)聯系起來。 所有剩余節點僅通過1個關系連接。 評估者的目標是返回AD,AB和BC,但不返回DE。 BC有效的確定來自A和B之間存在兩種關系的事實。

怎么解決這個問題?

您可能需要更仔細地考慮您的用例。

一個建議是,當你在java中使用遍歷框架時 ,基本上你可以構建一個TraversalDescription ,然后迭代通過關系而不是路徑或節點從它返回的內容。 如果您的主要抱怨是每個節點只被訪問過一次,您可以更改TraversalDescription以指定RELATIONSHIP_GLOBAL,保證將遵循所有關系,無論這是否會導致您多次訪問節點。

更廣泛地說,遍歷者不會多次使用相同的材​​料,因為如果他們這樣做,則需要非常小心地指定終止條件。 如果多次擊中某些節點或關系是可以的,你什么時候知道你已經完成了?

暫無
暫無

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

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