Neo4j基礎(詳細)

Webインタフェースの基本操作

  • ノードを作成します
    (:ラベル=ノード名作成名{プロパティ名:プロパティ値を})
    ノード、例えば、単一のラベルを作成し、ノードは、4つの属性を有しています


    1331259-a1fbbbf09321ae6f.png
    image.png

    例えばノードは、複数のラベルを作成するには、ノードは、プロパティを持っています


    1331259-3fb9304124b4cf18.png
    image.png

    私たちは、次の操作を容易にするために、いくつかのノードを追加し続けます
    1331259-0939145cc65a281e.png
    image.png

    例えば、同時にノードを作成すると、関連付けを設定するとき
    1331259-1a7b11d892a9e1c3.png
    image.png

    例えば(のNeo4j CQLは関係の方向のみをサポートしているコマンドのCREATE)既存のノードへの関連付けを作成


    1331259-eee4337b5427d495.png
    image.png

    例えばノードを返した後、あなたは協会のオプションノード関係情報に基づいて、彼に関連するノードを表示することができます
    1331259-4e4a35849162fb59.png
    image.png

    例えばノードを作成するだけで良いデザインの必須属性することができますが、特定の値を満たしていない場合はNULLに設定され、使用は、このノードを検索し、必要な値を設定してNULL遅れています
    1331259-b3cec148eddc4a55.png
    image.png

    1331259-1e7dda06dfd702fb.png
    image.png
  • 試合の参照関係は、またはノードを見つけます
  • 取得した復帰操作表示情報
    などを、すべてのノードを表示します


    1331259-f378452e38d606e4.png
    image.png

    例えば、特定のノードの特定の情報を検索します


    1331259-6ec4835efa56a275.png
    image.png

    例えば情報にクラスのノードを見つけます
    1331259-afa1f7173a913170.png
    image.png

    例えばラベルに従ってノードポイントのクラスを見つけます
    1331259-37843e91b04667ec.png
    image.png

    例えばポイントのプロパティに基づいてノードを見つけます


    1331259-fce936ce06b445f3.png
    image.png

    egMatchは、中間処理結果と組み合わせます
    1331259-c23e67c2c3436b23.png
    image.png

    複数のタブのための例えばノード、あなたは見つけるためにラベルを指定することができます
    1331259-dc33c20fdc4b6a70.png
    image.png
  • delete-削除するかに関連するノードを削除
    我々は、学生の間で何らかの関係を構築し、混乱を追加した関係を削除しようとすることがわかったような例を


    1331259-717173e84b186425.png
    image.png

    1331259-e08ff70ed667ef03.png
    image.png

    例えば、関係を再追加、削除、シルビアとの関係の友人を発見し、ナイルノード問題を設定します


    1331259-769c3b4b07b4f540.png
    image.png

    例えば、重複ノードを削除
    1331259-fe3c18ed59739907.png
    image.png

    他のいくつかの関係を追加するには、適切な
    1331259-5a99cc9ae93c9afa.png
    image.png
  • 追加または削除する属性(SET、削除)は、
    EGは、キャッチフレーズを追加しました


    1331259-54604c998c17c3c2.png
    image.png

    例えばプロパティを追加


    1331259-344e23488b9ebf77.png
    image.png

    例えばプロパティを削除
    1331259-8eecfd6a733872ba.png
    image.png

    削除し、削除デタッチ:かつての削除ノードとの関係を、単にノードを削除しました

    例えばキャッチフレーズを削除


    1331259-f802a1e3de3c1017.png
    image.png
  • キャッチフレーズ


    1331259-8e35175722945931.png
    image.png

    Tagline:节点的一些特征,可以没有
    Property:属性,可以是节点的也可以是关联的属性
    Label:标签,用于节点分类

  • where根据限定的条件筛选
  • 排序 order by
    e.g.按名字降序排列


    1331259-319f26d4acd2a086.png
    image.png
  • Union
    e.g.可以看到Union需要前后的两个查询具有相同的列名


    1331259-987aa33562d7a25c.png
    image.png

    e.g.统计老师学生的id


    1331259-5982fd953d408048.png
    image.png
  • Limit
    e.g.限制显示两个节点(按照<id>从小到大的顺序展示)


    1331259-cd72aa505f9432b2.png
    image.png

    1331259-590d4a2fe0958969.png
    image.png

    1331259-32f6382bf11d8a48.png
    image.png

    这里的<id>是自动编号的,我们也可以通过查找它来对节点进行查询或操作
    e.g.对<id>=1的节点进行查询


    1331259-215c95ae82de2471.png
    image.png
  • Skip跳过几个节点
    e.g.skip 3 跳过前三个节点


    1331259-407226449618c299.png
    image.png
  • Merge操作
    e.g. Merge对于不存在的节点,作用类似于create


    1331259-fd23f1b66cd0e28f.png
    image.png

    e.g.对于已经存在的几点,作用只是查找他,并不会新增节点


    1331259-844707a9e1ab82d1.png
    image.png
  • In操作
    e.g.给定一个符合选取条件的区间


    1331259-665b7176f1d765cb.png
    image.png
  • 图字体和显示设置


    1331259-26c471dba9cb530f.png
    image.png

    可以选择颜色大小,caption部分可以选择展示的标题

  • 字符串函数


    1331259-a40c4bb80767893b.png
    image.png
  • 聚合函数(类似SQL,在return子句中声明)
    e.g.节点自编id的最大最小值


    1331259-bcbc0d28ef736b1e.png
    image.png

    e.g.爱好弹钢琴的人数(对特定的属性进行统计)


    1331259-7780fcecfe769bef.png
    image.png

    e.g.label为学生的人数(对特定的label进行统计)
    1331259-c37830d60eedf1b3.png
    image.png
  • 关系函数
    我们先建立一个小的模块,方便后续操作


    1331259-63e33f1dea9c0cb2.png
    image.png

    e.g.找到关系的始端


    1331259-4f0a9b8c57a46d33.png
    image.png

    e.g.同理也可以找到末端
    1331259-bcb2e88ac2c2dc3c.png
    image.png

    e.g.当关系具有特定属性,我们可以通过限制属性查找特定关系的始末端
    1331259-d6b1856b6586d89c.png
    image.png

    e.g.同时可以查询关系的id、类型和一些属性


    1331259-19e092ae5295f730.png
    image.png

    可以用schema查看一下当前的索引和约束情况
    1331259-e8631dcf46cc3d9d.png
    image.png
  • 索引
    e.g.创建索引


    1331259-b3c2da23785b9cfd.png
    image.png

    e.g.查看索引


    1331259-3c110d38c2ad3254.png
    image.png

    e.g.删除索引
    1331259-21a25a1f32d19200.png
    image.png

    索引的作用:优化查询的过程
  • unique约束
    e.g.创建一个唯一约束,试图插入一个违规数据,检测到报错


    1331259-0f18a36060e99401.png
    image.png

    1331259-ec4936d8c0e4a5a0.png
    image.png

针对Neo4j的第三方软件

  • Apoc:Awesome Procedures on Cypher(封装了一些cypher编写复杂的函数)
  • 开源可视化组件库:(可以根据自己的项目特点进行调整)
    D3.js:一个基于数据处理文档JavaScript库,可以通过操作HTML、SVG、CSS来实现数据可视化。我们可以在网页端引入Neo4j的JavaScript js库,调用Neo4j的API拿到数据,然后根据D3.js的API组织JSON数据,然后渲染。
    vis.js、Sigma.js、Vivagraph.js、yWorks
  • 更加容易使用的可视化方案:(整套、全封装、高可用)
    Gephi、Keylines、Linkurio.us、Tom Sawyer图可视化
    (Neo4j Browser)
  • Neoclipse:帮助更好地调整、创建、展示Neo4j数据库
    a graph database utility designed to help you view and modify Neo4j databases when it comes to various properties and relationships, as well as to create new nodes and relationships.

图数据库实例仿照练习(反欺诈)

  • 背景:ファースト-Party-銀行-詐欺詐欺本名/ファーストパーティ詐欺の
    自然:実用的な自分自身や他の人のID、偽造身元詐欺、クレジットカード詐欺、クレジット詐欺、詐欺の当座貸越を含めるように最初のパーティに特有の銀行詐欺、無担保を発明クレジット詐欺などは、クレジットカード、ローンやその他のツールを使用して銀行からお金を詐取するために、しかし、大きな問題は、銀行が直面している返済する一切意欲、ありません。
    操作の詐欺リングノーマルモード:
    2人以上のグループまたは2で構成される詐欺リング、彼らは情報のいくつかの合法的な接触を共有し、その情報の異なる組み合わせによって合成された複数のIDを作成します。合法の銀行口座が増加与信限度を検出したため、通常、いくつかの時間のために使用するアカウントを開き、これらのIDを使用するには、詐欺リング。ある日突然、誰もがクレジットラインの利用を最大化し、その後、姿を消し、債務につながる回復することはできません。
    なぜデータベースダイアグラムを使用します。
    グラフは、従来のデータベースでパターン「謝罪」キャッチへを明らかにすることができますrelatednesstheyを発現するように設計されている。
    運用図面データベースを:エンティティは、分析テストの異なる段階を設定
  • シミュレーションステップ
  1. 3つの連絡先および3つのアカウントを作成します
  2. 3つの連絡先に関連付けるためにアドレスを作成します。
  3. 両方の電話番号の3つの接点を関連付ける、2つの電話番号を作成します。
  4. 2 SSN(社会セキュリティアカウント)を作成し、3つの接点と関連していました
  5. 三つの各口座や住宅ローンなしクレジットカードの申請
  6. 実体関連する分析:複数の正当なアカウント所有者が共有する連絡先情報を検索し、潜在的な金融リスク計算
    、結果が達成されるの端部に取り付けられた固有のコードを以下に


    1331259-7552ecd04deb2c7f.png
    image.png

    次に、モデルに関連するエンティティの数を分析

  7. 口座名義の複数の正当な連絡先情報が共有する分析


    1331259-2f6935f14c7dfec3.png
    image.png

    1331259-91f66017254dbbb8.png
    image.png

    1331259-6d6b0d56606d4982.png
    image.png
  8. 可能な金融リスクの計算


    1331259-629f7b5b086e094d.png
    image.png

    1331259-775f3e9a768cadd3.png
    image.png

    1331259-0b598aaab8aaa6fa.png
    image.png

    1331259-533e5a1e9f465fba.png
    image.png
create
(accountOwner1:AccountOwner{FirstName:"Sylvia",LastName:"Song",UniqueID:"SylviaSong"}),
(accountOwner2:AccountOwner{FirstName:"Angle",LastName:"Hao",UniqueID:"AngleHao"}),
(accountOwner3:AccountOwner{FirstName:"Jacky",LastName:"Song",UniqueID:"JackySong"}),
(address1:Address{Street:"123 NW1st Street",City:"Beijing"}),
(accountOwner1)-[:HAS_ADDRESS]->(address1),
(accountOwner2)-[:HAS_ADDRESS]->(address1),
(accountOwner3)-[:HAS_ADDRESS]->(address1),
(phoneNumber1:PhoneNumber{PhoneNumber:"111-111-11111"}),
(phoneNumber2:PhoneNumber{PhoneNumber:"222-222-22222"})
                                <-[:HAS_PHONENUMBER]-(accountOwner3),
(accountOwner1)-[:HAS_PHONENUMBER]->(phoneNumber1),
(accountOwner2)-[:HAS_PHONENUMBER]->(phoneNumber1),
(SSN1:SSN{SSN:"241-23-1234"}),
(accountOwner2)-[:HAS_SSN]->(SSN1),
(accountOwner3)-[:HAS_SSN]->(SSN1),
(SSN2:SSN{SSN:"241-23-5678"}),
(accountOwner1)-[:HAS_SSN]->(SSN2),
(creditCard1:CreditCard{AccountNumber:"1234567890123456",
                        Limit:5000,
                        Balance:1442.23,
                        ExpirarionDate:"01-20",
                        SecurityCode:"123"})<-[:HAS_CREDITCARD]-(accountOwner1),
(creditCard2:CreditCard{AccountNumber:"1234567890123456",
                        Limit:4000,
                        Balance:2345.56,
                        ExpirarionDate:"02-20",
                        SecurityCode:"456"})<-[:HAS_CREDITCARD]-(accountOwner2),
(bankAccount1:BankAccount{AccountNumber:"2345678901234567",
                          Balance:7054.43})<-[:HAS_BANKACCOUNT]-(accountOwner1),
(bankAccount2:BankAccount{AccountNumber:"3456789012345678",
                          Balance:4231.12})<-[:HAS_BANKACCOUNT]-(accountOwner2),
(bankAccount3:BankAccount{AccountNumber:"4567890123456789",
                          Balance:12345.45})<-[:HAS_BANKACCOUNT]-(accountOwner3),
(unsecuredLoan1:UnsecuredLoan{AccountNumber:"4567890123456789-0",
                              Balance:9045.53,
                              APR:.0541,
                             LoanAmount:12000.00})<-[:HAS_UNSECUREDLOAN]-(accountOwner2),
(unsecuredLoan2:UnsecuredLoan{AccountNumber:"5678901234567890-0",
                              Balance:16341.95,
                              APR:.0341,
                              LoanAmount:22000.00})<-[:HAS_UNSECUREDLOAN]-(accountOwner3)

ます。https://www.jianshu.com/p/9e3c4892ab3eで再現

おすすめ

転載: blog.csdn.net/weixin_33950035/article/details/91325132