您好我已在我的架构中禁用扫描。
我知道不允许这样的查询:
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表扫描。
由于
答案 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)
我们在哪里划线?我不希望你回答这个问题,只是想表明它并不像最初看起来那么容易。