【问题标题】:No relationships created after running script运行脚本后未创建任何关系
【发布时间】:2017-10-25 10:53:05
【问题描述】:

我正在关注 neo4j 欺诈检测示例。

可以在https://neo4j.com/graphgist/bank-fraud-detection找到它

在我运行脚本创建节点和关系后,一切都没有错误并且一切都完成后,第二部分中的脚本什么也不返回。

这会创建节点和关系

Query 1
// Create account holders
CREATE (accountHolder1:AccountHolder {
 FirstName: "John",
 LastName: "Doe",
 UniqueId: "JohnDoe" })

CREATE (accountHolder2:AccountHolder {
 FirstName: "Jane",
 LastName: "Appleseed",
 UniqueId: "JaneAppleseed" })

CREATE (accountHolder3:AccountHolder {
 FirstName: "Matt",
 LastName: "Smith",
 UniqueId: "MattSmith" })

// Create Address
CREATE (address1:Address {
 Street: "123 NW 1st Street",
 City: "San Francisco",
 State: "California",
 ZipCode: "94101" })

// Connect 3 account holders to 1 address
CREATE (accountHolder1)-[:HAS_ADDRESS]->(address1),
 (accountHolder2)-[:HAS_ADDRESS]->(address1),
 (accountHolder3)-[:HAS_ADDRESS]->(address1)

// Create Phone Number
CREATE (phoneNumber1:PhoneNumber { PhoneNumber: "555-555-5555" })

// Connect 2 account holders to 1 phone number
CREATE (accountHolder1)-[:HAS_PHONENUMBER]->(phoneNumber1),
 (accountHolder2)-[:HAS_PHONENUMBER]->(phoneNumber1)

// Create SSN
CREATE (ssn1:SSN { SSN: "241-23-1234" })

// Connect 2 account holders to 1 SSN
CREATE (accountHolder2)-[:HAS_SSN]->(ssn1),
 (accountHolder3)-[:HAS_SSN]->(ssn1)

// Create SSN and connect 1 account holder
CREATE (ssn2:SSN { SSN: "241-23-4567" })<-[:HAS_SSN]-(accountHolder1)

// Create Credit Card and connect 1 account holder
CREATE (creditCard1:CreditCard {
 AccountNumber: "1234567890123456",
 Limit: 5000, Balance: 1442.23,
 ExpirationDate: "01-20",
 SecurityCode: "123" })<-[:HAS_CREDITCARD]-(accountHolder1)

// Create Bank Account and connect 1 account holder
CREATE (bankAccount1:BankAccount {
 AccountNumber: "2345678901234567",
 Balance: 7054.43 })<-[:HAS_BANKACCOUNT]-(accountHolder1)

// Create Credit Card and connect 1 account holder
CREATE (creditCard2:CreditCard {
 AccountNumber: "1234567890123456",
 Limit: 4000, Balance: 2345.56,
 ExpirationDate: "02-20",
 SecurityCode: "456" })<-[:HAS_CREDITCARD]-(accountHolder2)

// Create Bank Account and connect 1 account holder
CREATE (bankAccount2:BankAccount {
 AccountNumber: "3456789012345678",
 Balance: 4231.12 })<-[:HAS_BANKACCOUNT]-(accountHolder2)

// Create Unsecured Loan and connect 1 account holder
CREATE (unsecuredLoan2:UnsecuredLoan {
 AccountNumber: "4567890123456789-0",
 Balance: 9045.53,
 APR: .0541,
 LoanAmount: 12000.00 })<-[:HAS_UNSECUREDLOAN]-(accountHolder2)

// Create Bank Account and connect 1 account holder
CREATE (bankAccount3:BankAccount {
 AccountNumber: "4567890123456789",
 Balance: 12345.45 })<-[:HAS_BANKACCOUNT]-(accountHolder3)

// Create Unsecured Loan and connect 1 account holder
CREATE (unsecuredLoan3:UnsecuredLoan {
 AccountNumber: "5678901234567890-0",
 Balance: 16341.95, APR: .0341,
 LoanAmount: 22000.00 })<-[:HAS_UNSECUREDLOAN]-(accountHolder3)

// Create Phone Number and connect 1 account holder
CREATE (phoneNumber2:PhoneNumber {
 PhoneNumber: "555-555-1234" })<-[:HAS_PHONENUMBER]-(accountHolder3)

RETURN *

这是针对它的查询

Query 2
MATCH (accountHolder:AccountHolder)-[]->(contactInformation)
WITH contactInformation,
 count(accountHolder) AS RingSize
MATCH (contactInformation)<-[]-(accountHolder)
WITH collect(accountHolder.UniqueId) AS AccountHolders,
 contactInformation, RingSize
WHERE RingSize > 1
RETURN AccountHolders AS FraudRing,
 labels(contactInformation) AS ContactType,
 RingSize
ORDER BY RingSize DESC

任何想法为什么?

谁能重现这个问题?

【问题讨论】:

  • 第二个查询在这里返回 3 条记录。一切正常。
  • 你用的是什么 Neo4j 版本?
  • 3.2.6社区版

标签: neo4j cypher


【解决方案1】:

弄清楚发生了什么,但不知道为什么。 我一次运行脚本一个命令。我曾尝试一次运行多个命令,但出现错误。这就是为什么我一次只做一个。

当我运行完整的脚本时,它起作用了。创建了所有节点及其关系,我能够查询它们。

知道为什么我原来的方法不起作用吗? 感谢您的帮助

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-07-20
    • 2020-12-02
    • 1970-01-01
    • 1970-01-01
    • 2011-02-23
    • 1970-01-01
    • 2015-09-06
    • 2016-11-17
    相关资源
    最近更新 更多