1

我试图让有与其他人相同的地址和人员的数量datastax图的人员名单是3和5 之间这是查询:在DSE图使用索引

g.V().hasLabel('person').match(__.as('p').out('has_address').as('a').dedup().count().as('nr'),__.as('p').out('has_address').as('a')).select('nr').is(inside(3,5)).select('p','a','nr').range(0,20) 

在第一次运行我注意到这个错误信息:

找不到索引来回答查询子句和graph.allow_scan是 禁用:((标签=人))

我已启用graph.allow_scan = true,现在它的工作

我想知道如何创建一个索引,能够运行此查询,而无需启用allow_scan = true?

谢谢

回答

0

我不确定索引是您的问题的解决方案。 要做到这一点,最好的方法是将地址作为节点来查找,并查找3到5之间的indegree节点。

您可以在地址节点的文本字段上使用索引。

1

您可以使用如下命令将其添加到架构创建一个索引:

schema.vertexLabel('person').index('address').materialized().by('has_address').add() 

上添加索引完整文档,请点击这里:https://docs.datastax.com/en/latest-dse/datastax_enterprise/graph/using/createIndexes.html

不应启用graph.allow_scan =如下所示,在CQL查询中打开ALLOW FILTERING。这将导致大量的集群扫描,并且不可避免地超时系统中的任何实际数据量。您不应该在任何生产环境中启用此功能。