1、使用match時,避免使用多個標籤。搜尋使用了2個標籤,同樣的事情竟然訪問了資料庫801次。這是因為cypher執行了額外的 haslabel 過濾器。
可以通過使用專門的關係型別來解決這樣的問題,比如為他們新增published和drafted關係,然後用關係來找到指定使用者的published post。
2、隨機給node打標籤,多執行緒查詢
3、查詢策略
查詢1:
profile
match path=(x:node)-[*1..3]->(y:node)
return path
路徑:nodebylabelscan-->filter-->varlengthexpand(all)-->filter-->projection-->produceresults
查詢2:
profile
match path=(x)-[*1..3]-(y)
where id(x)=1 and id(y) = 14
return path
路徑:nodebyidseek-->varlengthexpand(all)-->filter-->projection-->produceresults
查詢id:
profile
match (n:node )
return id(n)
路徑:nodebylabelscan-->filter-->projection-->produceresults
4、資料預熱
match(n)
optional match (n)-[r]-()
return count(n.value)+count(r)
Neo4j 空間查詢
1.neo4j自帶函式進行簡單計算 neo4j自帶distance point1,point2 函式,返回乙個浮點數,表示同一座標參照系中兩點之間的測地距離,可以使用round函式來進行四捨五入。目前neo4j3.3版本不支援return直接返回point型別,3.4版本可以。節點型別 節點格式 詳...
neo4j 查詢cypher話語
engine.execute start n node people return n params skip和limit的數字引數12 345mapparams new hashmap params.put s 1 params.put l 1 executionresult result eng...
Neo4j查詢語句總結
最近一直在做圖資料庫的相關工作,對neo4j的查詢語言cypher使用較多,故在此總結記錄。cypher作為圖資料庫的查詢語言,感覺和關係型資料庫的查詢語言sql差不多吧。1.如何找到乙個節點x,x以某種關係同時連線兩個不同節點a和b match a r relation x r relation ...