我试图了解 gremlin 查询的工作原理,尤其是在涉及“AND”之类的查询时。
当我执行以下查询时,它会在大约 17 秒内产生结果。
g.V().has(id, gte(51200)).has(id, lte(51200000)).count().profile()
但是,如果我在此附加另一个 has 语句,如下所示,它甚至不会在 5 分钟内完成评估。
g.V().has(id, gte(51200)).has(id, lte(51200000)).has('entity_type', 'Human').count().profile()
我的期望是添加的“has”步骤只会在通过前两个 has 步骤的遍历上执行。因此,我没想到最后一个 has 语句会为整个查询增加很多时间,因为它只是检查属性的值。
我的后端是一个 JanusGraph,配置了 ElasticSearch 和 Google BigTable。它加载了大约 500 万个顶点。
对此的任何指导将不胜感激。