为什么我无法从Datastax DSE 5.0.x Graph查询数据子集而没有得到allow_scan被禁用错误?

时间:2017-04-04 09:53:27

标签: datastax datastax-enterprise gremlin datastax-enterprise-graph

您好我已在我的架构中禁用扫描。

我知道不允许这样的查询:

g.V()

g.V().hasLabel("User")
  

org.apache.tinkerpop.gremlin.driver.exception.ResponseException:可以   找不到回答查询子句和graph.allow_scan的索引   禁用:

我想知道为什么甚至是那些:

g.V().limit(2)

g.V().hasLabel("User").limit(2)

导致抛出相同的异常!这很令人沮丧,因为它们是有限查询,并且它们肯定不会导致完整的cassandra表扫描。

由于

1 个答案:

答案 0 :(得分:2)

目前正在讨论在禁用扫描时应允许哪种查询(如果有的话)。现在规则很简单:如果初始步骤不是索引查找,那么它被认为是完整扫描。

很容易说出来:

g.V().hasLabel("user").limit(2)

...例如应该被允许,但如果不认为这是完整的扫描,那么这些怎么样:

g.V().hasLabel("user").limit(10)
g.V().hasLabel("user").limit(100)
g.V().hasLabel("user").limit(1000)
g.V().hasLabel("user").limit(10000)
g.V().hasLabel("user").limit(100000)

我们在哪里划线?我不希望你回答这个问题,只是想表明它并不像最初看起来那么容易。