我正在使用Neo4j图形数据库来存储医学症状和疾病。这背后的目的是根据用户输入到系统中的症状给出一个人可能患有的疾病的建议。现在我存储了各种症状,如下所示。
这是一个非常基本的图形结构,我通过cypher查询匹配模式来检索疾病,例如发烧、头痛和流感的原因的交集。我想要实现的是建立一个复杂的结构,包括位置和年龄等因素,并编写各种算法,通过高效遍历来检索连接最多的节点。我无法在互联网上找到如此复杂的结构,所以任何建议都将不胜感激。尽管它不是很像编码的问题,但请给出一些建议,因为这只是一个大学项目,我必须在这方面走得更远。
发布于 2014-03-15 00:09:19
这里有一个可以回答复杂查询的简单模型。
有3种类型的节点:
一旦你用患者的数据构建了这个模型,你就有了一个足够复杂的图表来做以下事情:
由于这是一个大学项目,您可以先尝试一些模拟数据。这种方法应该是有效性和简单性的完美结合。
发布于 2014-03-11 19:19:13
也许你应该重新考虑你的模型。我的天,你没有分开症状,疾病,也许还有考试。
看一看Neo4J标签
(:symptom)-BELONGS->(:symptomGroup)-MAY_INDICATE->(:illNess) (:检查)-验证->(:疾病)
你必须对症状进行分组
因为这是一个大学项目,也许你不是一个医生,你不会被期望建立一个‘包治百病’的系统。
处理找不到解决方案的情况。
我不应该写这个,但我知道有个聪明的人在@ Vidal (法国医学出版商)最近发表了一篇关于这个话题的图解。
发布于 2014-03-06 21:59:43
要找到连接最紧密的节点,也就是具有最多关系的节点,请使用
MATCH (n)-[r]-()
RETURN n, count(r)
ORDER by count(r) desc
LIMIT 1
以上内容适用于Neo4j 2.0。请注意,这将遍历整个图形。但是如果你的需求是这样的话,你就得做些苦差事。
https://stackoverflow.com/questions/22225979
复制相似问题