我有一个样本属性图加载到带有BDB后端的Titan。在每个顶点上,有4个属性,即“ ID ”,“first_name”,“middle_name”和“last_name”。我在顶点属性“ ID ”上构建了唯一索引。类型定义代码如下。
TitanKey keyID = g.makeKey("__ID__").dataType(String.class).indexed(Vertex.class).unique().make();
TitanKey keyFName = g.makeKey("first_name").dataType(String.class).make();
TitanKey keyMName = g.makeKey("middle_name").dataType(String.class).make();
TitanKey keyLName = g.makeKey("last_name").dataType(String.class).make();
//then for each edge label
//using signature to make the DB more compact
TitanLabel lbl = g.makeLabel(label_name).signature(keyID).signature(keyFName).signature(keyMName).signature(keyLName).make();
但是,当我通过Gremlin(通过控制台,即“gremlin.sh”或REST API)查询图形时,奇怪的是顶点属性似乎是“懒惰”加载的:
"g.v(100).__ID__"
,它将返回null; "g.v(100).map.iterate();g.v(100).__ID__"
,则会返回 ID 属性。在配置中,我禁用了storage.transactions,并将storage.read-only设置为true。还试图将fast-property设置为true或false,但结果没有区别。
是否还有其他必须配置以避免此问题?