Titan警告:查询需要迭代所有顶点[(name<> null)]

时间:2016-04-21 15:16:06

标签: java hbase titan

我使用了以下代码

ldapmodify -h hostname -p 10389 -D "uid=admin,ou=system" -w adminpassword -a -f your-file.ldif

从图表中检索数据时,我收到此警告,

mgmt = g.getManagementSystem()
PropertyKey name = mgmt.makePropertyKey("name").dataType(String.class).make();
mgmt.buildIndex("name",Vertex.class).addKey(name).unique().buildCompositeIndex();

遍历整个图形以获取顶点而不是索引顶点。 请提出修改建议。

1 个答案:

答案 0 :(得分:2)

这里是Titan 1.0 indexing documentation的链接,但其对复合索引的描述也适用于0.5.2。

  

复合索引非常快速有效,但仅限于相等   查找特定的,先前定义的属性组合   密钥。

复合索引用于完全匹配键值检索。您的查询应包含您要查找的属性值,以便利用索引。

tx.query().has("name", "userRaj").vertices.iterator()

您在问题中编码的方式,它必须扫描具有属性name的所有顶点,因为它没有尝试匹配任何特定值(即null)。

WARN  com.thinkaurelius.titan.graphdb.transaction.StandardTitanTx  - Query requires iterating over all vertices [(name <> null)]. For better performance, use indexes

如果您正在进行新的Titan开发,我建议您升级到1.0,因为在0.5.x流上不再有任何版本。