根據我如何檢索我的節點,getRelationships
方法將返回所有關係(預期)或無關係(錯誤)。getRelationships並不總是返回關係
Neo4j版本2.2.6。使用Java API。
:schema
Indexes
ON :Lot(lot_id) ONLINE
ON :Lot(system) ONLINE
No constraints
lot_id始終是唯一的。
系統只有大約3個唯一值,並非所有批次都具有系統屬性。
方法,只要返回的關係:
ResourceIterator<Node> r = graphDb.findNodes(LabelTypes.Lot, "lot_id", lot);
Map<String,Object> parms = new HashMap<String,Object>(); parms.put("lots", lots); Result r = graphDb.execute("MATCH (n:Lot) WHERE n.lot_id in {lots} return n;", parms);
方法不返回的關係:
ResourceIterator<Node> r = graphDb.findNodes(LabelTypes.Lot, "system", system);
Map<String,Object> parms = new HashMap<String,Object>(); parms.put("lotSystem", system); Result r = graphDb.execute("MATCH (n:Lot) WHERE n.system = {lotSystem} return n;", parms);
的模式似乎是,如果我在lot_id查詢我得到的關係,如果我在系統查詢我沒有得到任何。不知道爲什麼。
從Neo4j的GUI一些額外的信息:
如果我運行此查詢:match (n:Lot) where n.system="SAMPLE" return n limit 1;
然後我得到我的單很多,但在GUI中沒有任何反應就可以了,如果我雙擊,沒有關係如圖。
如果我複製lot_id此節點和運行一個查詢只爲節點,然後關係回來的時候我雙擊該節點:match (n:Lot) where n.lot_id="someLotId" return n limit 1;
什麼是'system'類型單一的節點?確保你傳入參數的類型與存儲在圖表中的內容相符。 –
@WilliamLyon - 系統是一個字符串。我不禁要重複說明查詢總是返回節點;只有當我打電話給getRelationships時,我纔有麻煩。 – Peter
您能否提交來自Neo4j GUI的屏幕截圖或/和數據樣本,其中關係是針對指定的,由「系統」找到的? – FylmTM