高性能內存圖數據庫RedisGraph(三)


      這篇文章,我將介紹截止目前,RedisGraph的最新版本(v2.4)對Cypher語言的支持情況。

      1.模式(patterns)

      RedisGraph已支持Cypher中所有的模式。

      2.類型(types)

      作為操作圖數據庫的查詢語言,Cypher的數據類型包括節點(nodes)、關系(relationships)、路徑(path)、列表(lists)、地圖(maps)、字符串類型(string)等等。目前尚未支持的類型主要是十六進制與八進制數字以及各類時間、日期、持續時間等時態類型(temporal types)。RedisGraph對NULL的實現是將其作為缺失或未定義值的表示。

      3.子句(clauses)

      RedisGraph已支持除REMOVE(用於刪除屬性值)子句外的全部子句,且基於RedisGraph對NULL的解釋方法,可通過設置(SET)屬性值為NULL的方法實現REMOVE的功能。

      4.函數(functions)

      函數是Cypher實現復雜查詢的基礎,是Cypher中十分重要的一部分,一條優美的查詢語句離不開恰當的函數與基礎的子句的組合。在眾多的函數種類中,已經得到RedisGraph全部支持的類別有聚合(aggregating)函數、列表(list)函數、數字數學(math - numeric)函數、斷言(predicate)函數、表達式(expression)函數和地理空間(geospatial)函數;得到RedisGraph部分支持的類別有標量(scalar)函數和字符串(string)函數;RedisGraph尚未支持的函數類別有對數數學(logarithmic math)函數、三角數學(trigonometric math)函數和用戶自定義(user-defined)函數。

      5.操作符(operators)

      數學操作符中,取冪(exponentiation)操作尚未得到支持;字符串操作符中,正則表達式(regex)尚未得到支持;所有布爾操作符都已得到RedisGraph支持。

      Cypher語句是Neo4j推出的,操作圖數據庫的查詢語句,其地位可以對標關系型數據庫中的SQL語言。在操作RedisGraph時,需要按照指定格式使用Cypher命令。如:

GRAPH.QUERY MotoGP “MATCH (r : Rider)-[: rides]->(t : Team) WHERE t.name = ‘Yamaha’ RETURN r.name, t.name”

      即格式為:

GRAPH.QUERY Database_name "Cypher codes"

      按以上格式即可使用Cypher操作RedisGraph,但要注意,一定得是RedisGraph已支持的Cypher子句。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM