通过id的集合查询泰坦的顶点集合的最佳方法是什么?
假设我有一些以UUID作为属性的节点,并且希望通过I集合获取这些顶点--查询的最佳方法是什么?
我可以在id集合上循环,并使用这个API逐个获得所需的顶点(在本例中,userId是id集合上的一个my环对象):
for(String userId: usersList) {
tg.getVertices("UUID", userId).iterator();
}或者这个:
for(String userId: usersList) {
tg.query().has("UUID", userId).vercities().iterator();
}但我找不到的是一种给泰坦列表的方式,让它进入一个电话,用Java做这件事的最好方法是什么?
编辑
换句话说,我正在寻找SQL IN操作符的等效方法--但是在titan语法中:
SELECT *
FROM Users
WHERE City IN ('fe4e2e2c-8638-4081-b6de-e10252e638e7', 'fess2c-8638-4rgf-b6de-e102sdf3447');发布于 2015-11-16 09:38:43
您要寻找的是com.tinkerpop.blueprints.Contains谓词:
tg.query().has("UUID", Contains.IN, usersLists).verticies().iterator();发布于 2015-11-16 11:26:51
如果您使用的是土卫六1.0 (因此是TinkerPop 3.x),您可以更直接地使用Gremlin:
gremlin> g.V().has('name', within('marko','josh'))
==>v[1]
==>v[4]发布于 2016-03-14 08:04:47
最好将它添加到索引中,然后检索它,因为通过迭代器搜索图是没有效率的,如果您认为要在该字段上搜索,最好将它添加到索引中。
此外,还使用复合泰坦索引为独特的字段,因为它是更快。
另一种方法是划分您的图形,以便您知道在哪里搜索它,然后使用迭代器。
https://stackoverflow.com/questions/33727055
复制相似问题