neo4jグラフデータベースの概要

  • neo4jの概要
    • グラフデータベース
    • 環境変数の構成(Java環境が必要):NEO4J_HOME +ファイルディレクトリ;パス:%NEO4J_HOME%\ bin;コマンドウィンドウで入力:neo4jコンソール、次にneo4j install-serviceと入力してサービスをローカルにインストールします; neo4j startはサービスを開始し
      、データブラウザー開きます:http :// localhost:7474 / browser /
    • データストレージ:グラフノード、属性(キーと値のペア)、およびエッジを格納できるグラフ構造にデータを格納します。属性とノードは別々に格納され、属性とノード間の関係がエッジを構成します。
    • データの読み取りと書き込み:Neo4jでは、ノードを格納するときにインデックスフリー隣接技術が使用されます。つまり、各ノードには隣接ノードへのポインターがあり、時間の複雑さがO(1)のときに隣接ノードを見つけることができます。 。さらに、公式声明によると、エッジはファーストクラスエンティティであるNeo4jで最も重要であるため、個別に保存されます。これは、グラフをトラバースするときの速度を向上させるのに役立ち、あらゆる方向に簡単にトラバースすることもできます。
    • その他類似:Flockdb、Orientdb、Arangodb。Neo4jは最高の安定性を持っています
  • Neo4jの使用
    • リレーションシップは方向性があります(リレーションシップを作成するときにマージを使用し、作成しない場合は作成を返します。作成を使用すると、常に作成されます)

    • グラフデータベースは、すべてのデータをノードおよび関係に格納し、データをグラフの形式でネイティブ形式で格納します

    • ネイティブGPEエンジンを使用して、ネイティブイメージストレージ形式を使用する

    • 関係は、キーと値のペアとして属性を持つことができます。例:ID = 123

    • ラベルは一連の共通ノードまたは関係を関連付け、ノードまたは関係には1つ以上のラベルを含めることができます

    • ()を使用してノードを識別し、[]を使用して関係を識別します

    • create 创建节点,关系和属性
      match 检索有关节点,关系和属性
      return 返回查询结果
      where 提供条件检索数据
      delete 删除节点和关系
      remove 删除节点和关系的属性
      order by 排序检索数据
      set 添加或更新标签

    • boolean 布尔类型:true, false
      byte 8位整数
      short 16位整数
      int 32位整数
      long 64位整数
      float 32位浮点数
      double 64位浮点数
      char 16位字符
      String 字符串

    • Neo4j数据库服务器使用 < node-name > 将此节点详细信息存储在Database.As中作为Neo4j DBA或Developer, 不能使用它来访问节点详细信息
      Neo4j数据库服务器创建一个< label-name >作为内部节点名称的别名。使用此标签名称来访问节点详细信息

    • match要配合return,set,delete使用

    • neo4j配置文件的修改

    • match (a:author) set a.name="wu" return a      #增加属性或者修改属性。这里'a'是给'author'起个"变量名",下面类似
      match (n:author) where n.name=~'w*' return n   #可以使用正则匹配
      match (n:author) where n.name contains 'w' return n   #包含查询
      DETACH DELETE    #子句允许你删除一个节点的同时删除与其相连的所有关系
      match(c:Customer) where id(c)=110 delete c return c    #根据节点id删除节点
      match (c:Creditcard) where id(c)=111 set c.name="工商银行" return c  #根据节点id增加属性
      match (c:Customer) match (a:Creditcard) create (a)-[r:消费]->(c)  return r    #创建关系                                                
      match (w:weibo),(c:chaping) where w.emot=0 create (w)-[r1:差评]->(c) return r1 #根据属性建立节点关系
      MATCH p=()-[r:`消费`]->() where id(r)=0 set r.`额度`=200000 return r #创建关系的属性
      match (c:Customer) return c.name as name,c.id as id union match (a:Creditcard) return a.id as id,a.name as name        #联合查询,此处id只能返回节点属性里设置的id,默认节点id会返回null.(union查询会过滤掉重复行,union all 返回所有数据)
      create(drop) index on :author(name)   #创建/删除索引
      create(drop) constraint on (a:author) assert (a:author) is unique  #创建/删除约束
      
    • APOC(a package of component):

      • 两个jar包,放到neo4j的plugins目录下:apoc-3.4.0.3.jar和mysql-connector-java-5.1.21.jar
      • Text and Lookup indexes (文本和索引查找)
      • utility functions (实用函数):域名提取、时间、日期、数据格式转换等功能
      • グラフアルゴリズム:コミュニティ検出、PageRank、中央アルゴリズムなど
      • 空間(空間機能):ジオコーディング、位置計算、空間および時間検索など。
      • データ統合:JSON、JDBC、CSV、その他のデータ読み込み
      • グラフのリファクタリング:ノードのマージ、属性の指定と分類など
      • 仮想nades / rels(仮想ノード/関係):仮想グラフの作成を提供します
      • 暗号操作:単一および複数の暗号ステートメント操作およびスクリプト操作
      • トリガー(トリガー):リレーショナルデータベースと同じようにトリガーを理解する
    • Neo4jインポートトリプルデータグループ

      • コンピューターのneo4jサービスをオフにする
      • neo4jのデフォルトのデータベースファイル\ data \ databases \ graph.dbを削除します。それ以外の場合は、このパスの下に新しいデータベースファイルを作成します。ファイル名は***。dbで、neo4j \ conf \ neo4j.confの構成ファイルを変更します。 Office:#dbms.active_database = graph.db、新しく作成したデータベースの名前を変更してコメントを外します
      • データをインポートする方法はたくさんありますが、私はimportメソッドを使用して、整理されたノードcsvと関係csvをneo4jのインポートファイルに入れました
      • 文入文命令:neo4j-admin import --nodes E:\ neo4j-community-3.5.14 \ import \ entity.csv --relationships E:\ neo4j-community-3.5.14 \ import \ relationship.csv --multiline- fields = true --ignore-missing-nodes = true
      • neo4jサービスを開き、組み込みの視覚化Webサイトにアクセスしてグラフデータベースを表示します。

おすすめ

転載: blog.csdn.net/weixin_46046193/article/details/108632351