【发布时间】:2018-05-29 10:18:45
【问题描述】:
我正在使用 OrientDB 'match' 根据标准获取路径(在图表上),但得到的结果路径不存在。
我有一个“Person”顶点,它有一个“PhoneCall”边缘到另一个“Person”顶点 - 只有一个路径应该是匹配的! 所以我expext得到结果:vertex1-edgeX-vertex2 例如 - “jonn Smith --phoneCallX-- dan smith”
我实际得到的是 2 条路径:
- vertex1-edgeX-vertex2 (jonn Smith --phoneCallX-- dan smith) 还有:
- vertex1-edgeX-vertex1 - 这是不正确的,因为它与第一个结果相同的 edge-@rid 并且它也不是自我边缘:jonn Smith --phoneCallX--乔恩·史密斯
查询:
MATCH {class:person, as:E1, where:( ( firstName IN ['John'] ) )}.bothE(){class:phoneCall, as:R0}.bothV(){class:person, as:E0, where:( ( lastName IN ['Smith'] ) )} RETURN $paths
我认为这是因为“both()”方法with第一个顶点适用于两个过滤器的事实:
- 名字 IN ['John']
- 列表项 lastName IN ['Smith']
但仍然 - 我的意思是找到“John-phoneCall-Smith”的所有路径,我在这个 John 和他自己之间获得了优势(不存在),因为他的名字是 Smith(这应该是此关系的 OTHER 实体))
请帮助我 - 我做错了什么?
【问题讨论】:
标签: orientdb