虚拟节点与关系

虚拟节点和关系在图中并不实际存在,它们仅由查询返回,可用于表示图投影。

它们可用于可视化投影数据,例如将多个关系聚合成一个,或将中间节点折叠为虚拟关系。我们可以将引用图投影为虚拟的“作者-作者”或“论文-论文”图,并在它们之间建立聚合关系,甚至可以将 Twitter 数据转换为“用户-用户”提及图。

我们可以结合真实和虚拟实体,例如在两个真实节点之间创建虚拟关系,或者从虚拟节点创建指向真实节点的虚拟关系。

创建虚拟实体

返回不含某些指定属性的虚拟实体

本节内容包括

我们可以使用 apoc.graph.filterProperties 存储过程或类似的聚合函数,过滤掉子图中节点和关系的某些属性。

例如,如果我们想排除由以下内容创建的嵌入属性:

CALL apoc.ml.openai.embedding(["Test"], "<apiKey>", {}) yield embedding
with embedding
match (start:Start {id: 1}), (end:End {id: 2})
WITH start, end, embedding
CALL db.create.setNodeVectorProperty(start, "embeddingStart", embedding)
CALL db.create.setNodeVectorProperty(end, "embeddingEnd", embedding)
RETURN start, end

我们将返回不带这些属性的虚拟实体。

如果我们向 Neo4j Browser 或 Neo4j Bloom 返回这些节点,将会出现以下情况,我们可以看到日志嵌入属性:

browserBeforeFilter
bloomBeforeFilter

但如果我们过滤掉这些嵌入属性,情况就会变成下面这样,阅读起来更加清晰:

browserAfterFilter
bloomAfterFilter
© . This site is unofficial and not affiliated with Neo4j, Inc.