首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Gremlin Python -基于脚本的方法不返回全部- JanusGraph

Gremlin Python -基于脚本的方法不返回全部- JanusGraph
EN

Stack Overflow用户
提问于 2019-03-15 07:49:24
回答 1查看 298关注 0票数 3

我运行的是JanusGraph 0.3.1,使用的是gremlin python3.3.4和python3.7

在下面的测试用例中,我创建了65个顶点。当我使用g.V(list_of_ids).valueMap(true).toList()时。JanusGraph仅返回64个结果,而不是65个。

作为一种解决方法,当我有超过64个I要在g.V(list_of_ids)中传递时,我目前一次传递64个I。

是我做错了什么,还是在gremlin python中与查询绑定一起使用时,脚本方法有限制?

用于插入数据的架构和代码

代码语言:javascript
复制
// schema creation for graph named newg and traversal source g1

mgmt = newg.openManagement()

//make properties
type = mgmt.makePropertyKey('type').dataType(String.class).cardinality(org.janusgraph.core.Cardinality.SINGLE).make()
id_tx = mgmt.makePropertyKey('id_tx').dataType(String.class).cardinality(org.janusgraph.core.Cardinality.SINGLE).make()

// make vertex label
identity = mgmt.makeVertexLabel('identity').make()
mgmt.addProperties(identity, type, id_tx)

mgmt.commit()

// insert 65 vertices of the label identity

g1.addV('identity').property('id_tx','1').property('type','ecn')
g1.addV('identity').property('id_tx','2').property('type','ecn')
g1.addV('identity').property('id_tx','3').property('type','ecn')
g1.addV('identity').property('id_tx','4').property('type','ecn')
g1.addV('identity').property('id_tx','5').property('type','ecn')
g1.addV('identity').property('id_tx','6').property('type','ecn')
g1.addV('identity').property('id_tx','7').property('type','ecn')
g1.addV('identity').property('id_tx','8').property('type','ecn')
g1.addV('identity').property('id_tx','9').property('type','ecn')
g1.addV('identity').property('id_tx','10').property('type','ecn')
g1.addV('identity').property('id_tx','11').property('type','ecn')
g1.addV('identity').property('id_tx','12').property('type','ecn')
g1.addV('identity').property('id_tx','13').property('type','ecn')
g1.addV('identity').property('id_tx','14').property('type','ecn')
g1.addV('identity').property('id_tx','15').property('type','ecn')
g1.addV('identity').property('id_tx','16').property('type','ecn')
g1.addV('identity').property('id_tx','17').property('type','ecn')
g1.addV('identity').property('id_tx','18').property('type','ecn')
g1.addV('identity').property('id_tx','19').property('type','ecn')
g1.addV('identity').property('id_tx','20').property('type','ecn')
g1.addV('identity').property('id_tx','21').property('type','ecn')
g1.addV('identity').property('id_tx','22').property('type','ecn')
g1.addV('identity').property('id_tx','23').property('type','ecn')
g1.addV('identity').property('id_tx','24').property('type','ecn')
g1.addV('identity').property('id_tx','25').property('type','ecn')
g1.addV('identity').property('id_tx','26').property('type','ecn')
g1.addV('identity').property('id_tx','27').property('type','ecn')
g1.addV('identity').property('id_tx','28').property('type','ecn')
g1.addV('identity').property('id_tx','29').property('type','ecn')
g1.addV('identity').property('id_tx','30').property('type','ecn')
g1.addV('identity').property('id_tx','31').property('type','ecn')
g1.addV('identity').property('id_tx','32').property('type','ecn')
g1.addV('identity').property('id_tx','33').property('type','ecn')
g1.addV('identity').property('id_tx','34').property('type','ecn')
g1.addV('identity').property('id_tx','35').property('type','ecn')
g1.addV('identity').property('id_tx','36').property('type','ecn')
g1.addV('identity').property('id_tx','37').property('type','ecn')
g1.addV('identity').property('id_tx','38').property('type','ecn')
g1.addV('identity').property('id_tx','39').property('type','ecn')
g1.addV('identity').property('id_tx','40').property('type','ecn')
g1.addV('identity').property('id_tx','41').property('type','ecn')
g1.addV('identity').property('id_tx','42').property('type','ecn')
g1.addV('identity').property('id_tx','43').property('type','ecn')
g1.addV('identity').property('id_tx','44').property('type','ecn')
g1.addV('identity').property('id_tx','45').property('type','ecn')
g1.addV('identity').property('id_tx','46').property('type','ecn')
g1.addV('identity').property('id_tx','47').property('type','ecn')
g1.addV('identity').property('id_tx','48').property('type','ecn')
g1.addV('identity').property('id_tx','49').property('type','ecn')
g1.addV('identity').property('id_tx','50').property('type','ecn')
g1.addV('identity').property('id_tx','51').property('type','ecn')
g1.addV('identity').property('id_tx','52').property('type','ecn')
g1.addV('identity').property('id_tx','53').property('type','ecn')
g1.addV('identity').property('id_tx','54').property('type','ecn')
g1.addV('identity').property('id_tx','55').property('type','ecn')
g1.addV('identity').property('id_tx','56').property('type','ecn')
g1.addV('identity').property('id_tx','57').property('type','ecn')
g1.addV('identity').property('id_tx','58').property('type','ecn')
g1.addV('identity').property('id_tx','59').property('type','ecn')
g1.addV('identity').property('id_tx','60').property('type','ecn')
g1.addV('identity').property('id_tx','61').property('type','ecn')
g1.addV('identity').property('id_tx','62').property('type','ecn')
g1.addV('identity').property('id_tx','63').property('type','ecn')
g1.addV('identity').property('id_tx','64').property('type','ecn')
g1.addV('identity').property('id_tx','65').property('type','ecn')

gremlin> g1.tx().commit()
==>null
gremlin> g1.V().count()
==>65

现在,我尝试使用GLV和Script方法从中进行查询。GLV方法似乎工作得很好。

代码语言:javascript
复制
(py371local) bash-3.2$ python
Python 3.7.2 (v3.7.2:9a3ffc0492, Dec 24 2018, 02:44:43) 
[Clang 6.0 (clang-600.0.57)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> 
# GLV method
>>> from gremlin_python import statics
>>> from gremlin_python.structure.graph import Graph
>>> from gremlin_python.process.graph_traversal import __
>>> from gremlin_python.process.strategies import *
>>> from gremlin_python.driver.driver_remote_connection import DriverRemoteConnection
>>> graph = Graph()
>>> g1 = graph.traversal().withRemote(DriverRemoteConnection('ws://localhost:8182/gremlin', 'g1', username='<<user_id>>', password='<<password>>'))
>>> id_list = g1.V().id().toList()
>>> len(id_list)
65
>>> result = g1.V(id_list).valueMap(True).toList()
>>> result
/*
* 提示:该行代码过长,系统自动注释不进行高亮。一键复制会移除系统注释 
* [{'type': ['ecn'], <T.id: 1>: 28672, <T.label: 3>: 'identity', 'id_tx': ['31']}, {'type': ['ecn'], <T.id: 1>: 32792, <T.label: 3>: 'identity', 'id_tx': ['57']}, {'type': ['ecn'], <T.id: 1>: 28760, <T.label: 3>: 'identity', 'id_tx': ['52']}, {'type': ['ecn'], <T.id: 1>: 32768, <T.label: 3>: 'identity', 'id_tx': ['35']}, {'type': ['ecn'], <T.id: 1>: 12400, <T.label: 3>: 'identity', 'id_tx': ['41']}, {'type': ['ecn'], <T.id: 1>: 8344, <T.label: 3>: 'identity', 'id_tx': ['44']}, {'type': ['ecn'], <T.id: 1>: 8304, <T.label: 3>: 'identity', 'id_tx': ['19']}, {'type': ['ecn'], <T.id: 1>: 45192, <T.label: 3>: 'identity', 'id_tx': ['49']}, {'type': ['ecn'], <T.id: 1>: 28808, <T.label: 3>: 'identity', 'id_tx': ['32']}, {'type': ['ecn'], <T.id: 1>: 4160, <T.label: 3>: 'identity', 'id_tx': ['25']}, {'type': ['ecn'], <T.id: 1>: 24688, <T.label: 3>: 'identity', 'id_tx': ['51']}, {'type': ['ecn'], <T.id: 1>: 49288, <T.label: 3>: 'identity', 'id_tx': ['56']}, {'type': ['ecn'], <T.id: 1>: 4184, <T.label: 3>: 'identity', 'id_tx': ['8']}, {'type': ['ecn'], <T.id: 1>: 8328, <T.label: 3>: 'identity', 'id_tx': ['6']}, {'type': ['ecn'], <T.id: 1>: 16480, <T.label: 3>: 'identity', 'id_tx': ['30']}, {'type': ['ecn'], <T.id: 1>: 24600, <T.label: 3>: 'identity', 'id_tx': ['33']}, {'type': ['ecn'], <T.id: 1>: 20576, <T.label: 3>: 'identity', 'id_tx': ['34']}, {'type': ['ecn'], <T.id: 1>: 12312, <T.label: 3>: 'identity', 'id_tx': ['7']}, {'type': ['ecn'], <T.id: 1>: 8216, <T.label: 3>: 'identity', 'id_tx': ['5']}, {'type': ['ecn'], <T.id: 1>: 20616, <T.label: 3>: 'identity', 'id_tx': ['27']}, {'type': ['ecn'], <T.id: 1>: 16408, <T.label: 3>: 'identity', 'id_tx': ['10']}, {'type': ['ecn'], <T.id: 1>: 4120, <T.label: 3>: 'identity', 'id_tx': ['3']}, {'type': ['ecn'], <T.id: 1>: 20504, <T.label: 3>: 'identity', 'id_tx': ['18']}, {'type': ['ecn'], <T.id: 1>: 24728, <T.label: 3>: 'identity', 'id_tx': ['17']}, {'type': ['ecn'], <T.id: 1>: 53384, <T.label: 3>: 'identity', 'id_tx': ['59']}, {'type': ['ecn'], <T.id: 1>: 4192, <T.label: 3>: 'identity', 'id_tx': ['2']}, {'type': ['ecn'], <T.id: 1>: 32856, <T.label: 3>: 'identity', 'id_tx': ['61']}, {'type': ['ecn'], <T.id: 1>: 4096, <T.label: 3>: 'identity', 'id_tx': ['9']}, {'type': ['ecn'], <T.id: 1>: 24712, <T.label: 3>: 'identity', 'id_tx': ['29']}, {'type': ['ecn'], <T.id: 1>: 41096, <T.label: 3>: 'identity', 'id_tx': ['46']}, {'type': ['ecn'], <T.id: 1>: 36952, <T.label: 3>: 'identity', 'id_tx': ['64']}, {'type': ['ecn'], <T.id: 1>: 28696, <T.label: 3>: 'identity', 'id_tx': ['48']}, {'type': ['ecn'], <T.id: 1>: 32904, <T.label: 3>: 'identity', 'id_tx': ['36']}, {'type': ['ecn'], <T.id: 1>: 36864, <T.label: 3>: 'identity', 'id_tx': ['37']}, {'type': ['ecn'], <T.id: 1>: 24672, <T.label: 3>: 'identity', 'id_tx': ['45']}, {'type': ['ecn'], <T.id: 1>: 49152, <T.label: 3>: 'identity', 'id_tx': ['50']}, {'type': ['ecn'], <T.id: 1>: 8256, <T.label: 3>: 'identity', 'id_tx': ['38']}, {'type': ['ecn'], <T.id: 1>: 24664, <T.label: 3>: 'identity', 'id_tx': ['28']}, {'type': ['ecn'], <T.id: 1>: 16496, <T.label: 3>: 'identity', 'id_tx': ['43']}, {'type': ['ecn'], <T.id: 1>: 57344, <T.label: 3>: 'identity', 'id_tx': ['65']}, {'type': ['ecn'], <T.id: 1>: 53248, <T.label: 3>: 'identity', 'id_tx': ['58']}, {'type': ['ecn'], <T.id: 1>: 57480, <T.label: 3>: 'identity', 'id_tx': ['62']}, {'type': ['ecn'], <T.id: 1>: 8280, <T.label: 3>: 'identity', 'id_tx': ['16']}, {'type': ['ecn'], <T.id: 1>: 12288, <T.label: 3>: 'identity', 'id_tx': ['13']}, {'type': ['ecn'], <T.id: 1>: 4232, <T.label: 3>: 'identity', 'id_tx': ['1']}, {'type': ['ecn'], <T.id: 1>: 12376, <T.label: 3>: 'identity', 'id_tx': ['20']}, {'type': ['ecn'], <T.id: 1>: 16536, <T.label: 3>: 'identity', 'id_tx': ['55']}, {'type': ['ecn'], <T.id: 1>: 16520, <T.label: 3>: 'identity', 'id_tx': ['21']}, {'type': ['ecn'], <T.id: 1>: 8288, <T.label: 3>: 'identity', 'id_tx': ['12']}, {'type': ['ecn'], <T.id: 1>: 45056, <T.label: 3>: 'identity', 'id_tx': ['42']}, {'type': ['ecn'], <T.id: 1>: 16472, <T.label: 3>: 'identity', 'id_tx': ['23']}, {'type': ['ecn'], <T.id: 1>: 37000, <T.label: 3>: 'identity', 'id_tx': ['40']}, {'type': ['ecn'], <T.id: 1>: 40960, <T.label: 3>: 'identity', 'id_tx': ['39']}, {'type': ['ecn'], <T.id: 1>: 20632, <T.label: 3>: 'identity', 'id_tx': ['60']}, {'type': ['ecn'], <T.id: 1>: 20568, <T.label: 3>: 'identity', 'id_tx': ['26']}, {'type': ['ecn'], <T.id: 1>: 12424, <T.label: 3>: 'identity', 'id_tx': ['15']}, {'type': ['ecn'], <T.id: 1>: 12440, <T.label: 3>: 'identity', 'id_tx': ['53']}, {'type': ['ecn'], <T.id: 1>: 20592, <T.label: 3>: 'identity', 'id_tx': ['47']}, {'type': ['ecn'], <T.id: 1>: 4248, <T.label: 3>: 'identity', 'id_tx': ['14']}, {'type': ['ecn'], <T.id: 1>: 4208, <T.label: 3>: 'identity', 'id_tx': ['4']}, {'type': ['ecn'], <T.id: 1>: 8192, <T.label: 3>: 'identity', 'id_tx': ['11']}, {'type': ['ecn'], <T.id: 1>: 24576, <T.label: 3>: 'identity', 'id_tx': ['24']}, {'type': ['ecn'], <T.id: 1>: 12352, <T.label: 3>: 'identity', 'id_tx': ['63']}, {'type': ['ecn'], <T.id: 1>: 20480, <T.label: 3>: 'identity', 'id_tx': ['22']}, {'type': ['ecn'], <T.id: 1>: 28768, <T.label: 3>: 'identity', 'id_tx': ['54']}]
*/
>>> len(result)
65
>>> query = "g1.V(id_list).valueMap(True).toList()"
>>> query_bindings = {"id_list": id_list}

#  Now Try using the script method
>>> from gremlin_python.driver import client
>>> from gremlin_python.driver.serializer import GraphSONSerializersV3d0
>>> db_session = client.Client('ws://localhost:8182/gremlin', 'g1', message_serializer=GraphSONSerializersV3d0(), username="<<user_id>>", password="<<password>>")
>>> query = "g1.V(id_list).valueMap(true).toList()"
>>> result = db_session.submit(query, query_bindings).all().result()
>>> result
/*
* 提示:该行代码过长,系统自动注释不进行高亮。一键复制会移除系统注释 
* [{'type': ['ecn'], <T.id: 1>: 28672, <T.label: 3>: 'identity', 'id_tx': ['31']}, {'type': ['ecn'], <T.id: 1>: 32792, <T.label: 3>: 'identity', 'id_tx': ['57']}, {'type': ['ecn'], <T.id: 1>: 28760, <T.label: 3>: 'identity', 'id_tx': ['52']}, {'type': ['ecn'], <T.id: 1>: 32768, <T.label: 3>: 'identity', 'id_tx': ['35']}, {'type': ['ecn'], <T.id: 1>: 12400, <T.label: 3>: 'identity', 'id_tx': ['41']}, {'type': ['ecn'], <T.id: 1>: 8344, <T.label: 3>: 'identity', 'id_tx': ['44']}, {'type': ['ecn'], <T.id: 1>: 8304, <T.label: 3>: 'identity', 'id_tx': ['19']}, {'type': ['ecn'], <T.id: 1>: 45192, <T.label: 3>: 'identity', 'id_tx': ['49']}, {'type': ['ecn'], <T.id: 1>: 28808, <T.label: 3>: 'identity', 'id_tx': ['32']}, {'type': ['ecn'], <T.id: 1>: 4160, <T.label: 3>: 'identity', 'id_tx': ['25']}, {'type': ['ecn'], <T.id: 1>: 24688, <T.label: 3>: 'identity', 'id_tx': ['51']}, {'type': ['ecn'], <T.id: 1>: 49288, <T.label: 3>: 'identity', 'id_tx': ['56']}, {'type': ['ecn'], <T.id: 1>: 4184, <T.label: 3>: 'identity', 'id_tx': ['8']}, {'type': ['ecn'], <T.id: 1>: 8328, <T.label: 3>: 'identity', 'id_tx': ['6']}, {'type': ['ecn'], <T.id: 1>: 16480, <T.label: 3>: 'identity', 'id_tx': ['30']}, {'type': ['ecn'], <T.id: 1>: 24600, <T.label: 3>: 'identity', 'id_tx': ['33']}, {'type': ['ecn'], <T.id: 1>: 20576, <T.label: 3>: 'identity', 'id_tx': ['34']}, {'type': ['ecn'], <T.id: 1>: 12312, <T.label: 3>: 'identity', 'id_tx': ['7']}, {'type': ['ecn'], <T.id: 1>: 8216, <T.label: 3>: 'identity', 'id_tx': ['5']}, {'type': ['ecn'], <T.id: 1>: 20616, <T.label: 3>: 'identity', 'id_tx': ['27']}, {'type': ['ecn'], <T.id: 1>: 16408, <T.label: 3>: 'identity', 'id_tx': ['10']}, {'type': ['ecn'], <T.id: 1>: 4120, <T.label: 3>: 'identity', 'id_tx': ['3']}, {'type': ['ecn'], <T.id: 1>: 20504, <T.label: 3>: 'identity', 'id_tx': ['18']}, {'type': ['ecn'], <T.id: 1>: 24728, <T.label: 3>: 'identity', 'id_tx': ['17']}, {'type': ['ecn'], <T.id: 1>: 53384, <T.label: 3>: 'identity', 'id_tx': ['59']}, {'type': ['ecn'], <T.id: 1>: 4192, <T.label: 3>: 'identity', 'id_tx': ['2']}, {'type': ['ecn'], <T.id: 1>: 32856, <T.label: 3>: 'identity', 'id_tx': ['61']}, {'type': ['ecn'], <T.id: 1>: 4096, <T.label: 3>: 'identity', 'id_tx': ['9']}, {'type': ['ecn'], <T.id: 1>: 24712, <T.label: 3>: 'identity', 'id_tx': ['29']}, {'type': ['ecn'], <T.id: 1>: 41096, <T.label: 3>: 'identity', 'id_tx': ['46']}, {'type': ['ecn'], <T.id: 1>: 36952, <T.label: 3>: 'identity', 'id_tx': ['64']}, {'type': ['ecn'], <T.id: 1>: 28696, <T.label: 3>: 'identity', 'id_tx': ['48']}, {'type': ['ecn'], <T.id: 1>: 32904, <T.label: 3>: 'identity', 'id_tx': ['36']}, {'type': ['ecn'], <T.id: 1>: 36864, <T.label: 3>: 'identity', 'id_tx': ['37']}, {'type': ['ecn'], <T.id: 1>: 24672, <T.label: 3>: 'identity', 'id_tx': ['45']}, {'type': ['ecn'], <T.id: 1>: 49152, <T.label: 3>: 'identity', 'id_tx': ['50']}, {'type': ['ecn'], <T.id: 1>: 8256, <T.label: 3>: 'identity', 'id_tx': ['38']}, {'type': ['ecn'], <T.id: 1>: 24664, <T.label: 3>: 'identity', 'id_tx': ['28']}, {'type': ['ecn'], <T.id: 1>: 16496, <T.label: 3>: 'identity', 'id_tx': ['43']}, {'type': ['ecn'], <T.id: 1>: 57344, <T.label: 3>: 'identity', 'id_tx': ['65']}, {'type': ['ecn'], <T.id: 1>: 53248, <T.label: 3>: 'identity', 'id_tx': ['58']}, {'type': ['ecn'], <T.id: 1>: 57480, <T.label: 3>: 'identity', 'id_tx': ['62']}, {'type': ['ecn'], <T.id: 1>: 8280, <T.label: 3>: 'identity', 'id_tx': ['16']}, {'type': ['ecn'], <T.id: 1>: 12288, <T.label: 3>: 'identity', 'id_tx': ['13']}, {'type': ['ecn'], <T.id: 1>: 4232, <T.label: 3>: 'identity', 'id_tx': ['1']}, {'type': ['ecn'], <T.id: 1>: 12376, <T.label: 3>: 'identity', 'id_tx': ['20']}, {'type': ['ecn'], <T.id: 1>: 16536, <T.label: 3>: 'identity', 'id_tx': ['55']}, {'type': ['ecn'], <T.id: 1>: 16520, <T.label: 3>: 'identity', 'id_tx': ['21']}, {'type': ['ecn'], <T.id: 1>: 8288, <T.label: 3>: 'identity', 'id_tx': ['12']}, {'type': ['ecn'], <T.id: 1>: 45056, <T.label: 3>: 'identity', 'id_tx': ['42']}, {'type': ['ecn'], <T.id: 1>: 16472, <T.label: 3>: 'identity', 'id_tx': ['23']}, {'type': ['ecn'], <T.id: 1>: 37000, <T.label: 3>: 'identity', 'id_tx': ['40']}, {'type': ['ecn'], <T.id: 1>: 40960, <T.label: 3>: 'identity', 'id_tx': ['39']}, {'type': ['ecn'], <T.id: 1>: 20632, <T.label: 3>: 'identity', 'id_tx': ['60']}, {'type': ['ecn'], <T.id: 1>: 20568, <T.label: 3>: 'identity', 'id_tx': ['26']}, {'type': ['ecn'], <T.id: 1>: 12424, <T.label: 3>: 'identity', 'id_tx': ['15']}, {'type': ['ecn'], <T.id: 1>: 12440, <T.label: 3>: 'identity', 'id_tx': ['53']}, {'type': ['ecn'], <T.id: 1>: 20592, <T.label: 3>: 'identity', 'id_tx': ['47']}, {'type': ['ecn'], <T.id: 1>: 4248, <T.label: 3>: 'identity', 'id_tx': ['14']}, {'type': ['ecn'], <T.id: 1>: 4208, <T.label: 3>: 'identity', 'id_tx': ['4']}, {'type': ['ecn'], <T.id: 1>: 8192, <T.label: 3>: 'identity', 'id_tx': ['11']}, {'type': ['ecn'], <T.id: 1>: 24576, <T.label: 3>: 'identity', 'id_tx': ['24']}, {'type': ['ecn'], <T.id: 1>: 12352, <T.label: 3>: 'identity', 'id_tx': ['63']}, {'type': ['ecn'], <T.id: 1>: 20480, <T.label: 3>: 'identity', 'id_tx': ['22']}]
*/
>>> len(result)
64
>>> 
# We see only 64 returned instead of 65
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-03-15 08:05:02

数字64很有趣,因为它是默认的批处理迭代大小defined by the serverresultIterationBatchSize。我会试着将这个数字增加到100,重新启动服务器,看看你是否得到了所有65个结果。

也就是说,您应该不需要这样做-如果您的结果超过了resultIterationBatchSize,服务器应该自动生成下一批并将其流式传输到您的客户端。我似乎还记得很久以前的一个问题。我不能准确地指出代码中的更改,但我记得添加了以下测试:

https://github.com/apache/tinkerpop/commit/425bcd032adc9967a6b575da8042df3806671825

它处理需要流式传输的大型结果。请考虑跳转到gremlinpython 3.3.5,看看这是否解决了问题。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55173654

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档