[英]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.