首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Cypher查询中的问题- org.neo4j.internal.kernel.api.exceptions.EntityNotFoundException

Cypher查询中的问题- org.neo4j.internal.kernel.api.exceptions.EntityNotFoundException
EN

Stack Overflow用户
提问于 2022-05-30 11:11:16
回答 1查看 114关注 0票数 1

我正在使用密码查询执行以下步骤。我在步骤3中出错。我列出了下面的所有步骤。请帮助我实现预期的产出。

步骤1-加载数据并定义节点关系属性()

代码语言:javascript
复制
LOAD CSV WITH HEADERS FROM 'file://nodes_1Jan22_full_v2.csv' AS row
CREATE (n: Organisation {id: row.organisation, esg_index: toFloat(row.tone)});


LOAD CSV WITH HEADERS FROM 'file://edges_1Jan22_full_v2.csv' AS row
MERGE (src: Organisation {id: row.src})
MERGE (dst: Organisation {id: row.dst})
MERGE (src)-[:RELATE {freq: toInteger(row.relationship), sentiment: toFloat(row.avg_tone)}]->(dst);

样例查询与表结构

代码语言:javascript
复制
MATCH p=()-[r:RELATE]->() RETURN p LIMIT 1

代码语言:javascript
复制
{
  "start": {
"identity": 18862,
"labels": [
      "Organisation"
    ],
"properties": {
"id": "american university",
"esg_index": -3.005288932058546
    }
  },
  "end": {
"identity": 20048,
"labels": [
      "Organisation"
    ],
"properties": {
"id": "duke university",
"esg_index": -1.6810932825414502
    }
  },
  "segments": [
    {
      "start": {
"identity": 18862,
"labels": [
          "Organisation"
        ],
"properties": {
"id": "american university",
"esg_index": -3.005288932058546
        }
      },
      "relationship": {
"identity": 0,
"start": 18862,
"end": 20048,
"type": "RELATE",
"properties": {
"sentiment": -4.367701625823974,
"freq": 250
        }
      },
      "end": {
"identity": 20048,
"labels": [
          "Organisation"
        ],
"properties": {
"id": "duke university",
"esg_index": -1.6810932825414502
        }
      }
    }
  ],
  "length": 1.0
}

步骤2-创建图形投影

代码语言:javascript
复制
CALL gds.graph.project(
    'gdelt-analytics',
    'Organisation',
    'RELATE',
    {
        relationshipProperties: 'freq'
    }
)

MATCH (org:Organisation {id: 'public health'})
CALL gds.pageRank.stream('gdelt-analytics', {
    maxIterations: 100,
    dampingFactor: 0.85,
    sourceNodes: [org],
    relationshipWeightProperty: 'freq'
})
YIELD nodeId, score
RETURN *

电流输出

步骤3-尝试对基于属性"esg_index“的节点和基于属性”情感“(抛出错误的查询)的边缘进行着色

代码语言:javascript
复制
CALL apoc.create.addLabels(n.esg_index, [apoc.text.upperCamelCase(n.id)]) YIELD node
RETURN *

由于: org.neo4j.internal.kernel.api.exceptions.EntityNotFoundException:无法用id -2加载节点,Neo.ClientError.Procedure.ProcedureCallFailed未能调用过程apoc.create.addLabels:。

预期输出

有节点和边着色的图形。基于esg_index的节点着色和基于情感的边缘着色

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-05-30 12:11:29

APOC addLabels函数接受节点列表或它们的id,可以使用ID(n)作为输入。您正在传递esg_index,这就是您可能会收到此错误的原因:

试试这个:

代码语言:javascript
复制
CALL apoc.create.addLabels(n, [apoc.text.upperCamelCase(n.id)]) YIELD node
RETURN *

应该管用的。文档链接

更新:

要使用esg_index添加标签,我认为apoc.do.case函数应该对您有好处。你可以试试这样的东西:

代码语言:javascript
复制
CALL apoc.do.case([
  n IS NOT NULL AND n.esg_index = -5,
  'SET n:DARK_RED RETURN n AS node',
  n IS NOT NULL AND n.esg_index = 1,
  'SET n:GREEN RETURN n AS node'
  ],
  'RETURN n AS node',{n: n})
YIELD value
RETURN value.node AS node;
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72433368

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档