我发现https://groups.google.com/forum/#!topic/orient-database/Y0QJiXk7d1I的讨论非常有用,可以帮助我设置一个包含边缘的严格模式。这是我的代码
val fileLink = schema.createClass(DefinedInS.label, g.getEdgeBaseType())
fileLink.setStrictMode(true)
fileLink.createProperty("out", OType.LINK, fqnSymbol).setNotNull(true)
fileLink.createProperty("in", OType.LINK, fileCheck).setNotNull(true)
fqnSymbol.createProperty("out_" + DefinedInS.label, OType.LINKBAG).setNotNull(true)
fileCheck.createProperty("in_" + DefinedInS.label, OType.LINKBAG).setNotNull(true)
但我很困惑为什么我需要最后两行,它们不是多余的(或者至少是由fileLink
属性暗示的?)。有人可以解释为什么需要它们吗?
此外,对于此示例,我想要从fqnSymbol
到fileCheck
的完全一个链接,但这似乎要求使用LINKBAG
(它如果我使用LINK
)则失败。这是我应该被允许做的事情吗?
此外,通过在边缘添加索引可以获得任何性能优势吗?我的用例是这样的,当我想查找fqnSymbol
时,我总是会有fileCheck
。
我提出https://github.com/orientechnologies/orientdb/issues/5494要求在这方面提供更好的文档。