neo4j 密码根据属性字符串值创建两个节点之间的关系
neo4j cypher create relation between two nodes based on an attribute String value
我有一个带有 Experiment 标签的节点,其属性名为 ExperimentName。
此实验名称基于 3 个不同变量的串联
"Condition (ExperimentProfile1) Dose"
示例:
Control diet (MOA77) LD
Control gavage(MOA66) HD
我有另一个名为 ExperimentMapper 的节点
它有 3 个属性:
- 健康)状况
- 实验简介
- 剂量
我想在节点 Experiment 和节点 ExperimentMapper 之间创建一个关系,当 experimentName 是 3 个属性组装的结果时。
我曾尝试使用正则表达式,但查询速度非常慢,而且耗时很长..
有什么帮助吗?
这是我的密码,但尽管我创建了索引,但它仍然需要很长时间
MATCH (mxpExperiment:MxpExperiment) OPTIONAL MATCH (otuExperimentMapper:OtuExperimentMapper)
WHERE mxpExperiment.name CONTAINS otuExperimentMapper.Condition
AND mxpExperiment.name CONTAINS otuExperimentMapper.Experiment
AND mxpExperiment.name CONTAINS otuExperimentMapper.dose
CREATE (mxpExperiment)-[:OTU_EXPERIMENT_MAPPER]->(otuExperimentMapper)
RETURN mxpExperiment, otuExperimentMapper
我认为你需要从 Experiment Mapper
的一侧走。
首先你需要创建一个索引:
CREATE INDEX ON :MxpExperiment(name)
那么查询可以如下:
MATCH (otuExperimentMapper:OtuExperimentMapper)
WITH otuExperimentMapper,
otuExperimentMapper.Condition + ' (' +
otuExperimentMapper.Experiment + ') ' +
otuExperimentMapper.dose AS name
MATCH (mxpExperiment:MxpExperiment) WHERE mxpExperiment.name = name
MERGE (mxpExperiment)-[:OTU_EXPERIMENT_MAPPER]->(otuExperimentMapper)
RETURN mxpExperiment, otuExperimentMapper
我有一个带有 Experiment 标签的节点,其属性名为 ExperimentName。
此实验名称基于 3 个不同变量的串联
"Condition (ExperimentProfile1) Dose"
示例:
Control diet (MOA77) LD
Control gavage(MOA66) HD
我有另一个名为 ExperimentMapper 的节点 它有 3 个属性: - 健康)状况 - 实验简介 - 剂量
我想在节点 Experiment 和节点 ExperimentMapper 之间创建一个关系,当 experimentName 是 3 个属性组装的结果时。
我曾尝试使用正则表达式,但查询速度非常慢,而且耗时很长..
有什么帮助吗?
这是我的密码,但尽管我创建了索引,但它仍然需要很长时间
MATCH (mxpExperiment:MxpExperiment) OPTIONAL MATCH (otuExperimentMapper:OtuExperimentMapper)
WHERE mxpExperiment.name CONTAINS otuExperimentMapper.Condition
AND mxpExperiment.name CONTAINS otuExperimentMapper.Experiment
AND mxpExperiment.name CONTAINS otuExperimentMapper.dose
CREATE (mxpExperiment)-[:OTU_EXPERIMENT_MAPPER]->(otuExperimentMapper)
RETURN mxpExperiment, otuExperimentMapper
我认为你需要从 Experiment Mapper
的一侧走。
首先你需要创建一个索引:
CREATE INDEX ON :MxpExperiment(name)
那么查询可以如下:
MATCH (otuExperimentMapper:OtuExperimentMapper)
WITH otuExperimentMapper,
otuExperimentMapper.Condition + ' (' +
otuExperimentMapper.Experiment + ') ' +
otuExperimentMapper.dose AS name
MATCH (mxpExperiment:MxpExperiment) WHERE mxpExperiment.name = name
MERGE (mxpExperiment)-[:OTU_EXPERIMENT_MAPPER]->(otuExperimentMapper)
RETURN mxpExperiment, otuExperimentMapper