如何修复ArangoDB(Golang)中AQL查询的索引使用语法错误?
AQL索引使用语法错误修复方案
你的问题出在USE INDEX子句的位置错误,它必须紧跟在对应的FOR遍历集合的语句之后,不能独立放在查询末尾。AQL中索引是绑定到单个遍历操作的,而非整个查询。
修正后的Golang代码如下:
query := ` LET results = FLATTEN( FOR doc IN @@collectionName01 FILTER @brand == doc.name RETURN doc.cars) FOR doc IN @@collectionName02 USE INDEX @carIndex FILTER results ANY IN doc.cars RETURN doc` bindVars := map[string]interface{}{ "@collectionName01": Brand_Collection, "brand": brand, "@collectionName02": Car_Collection, "carIndex": Car_Index, }
额外说明:
- 确保
carIndex的索引字段与FILTER中的doc.cars匹配,否则索引无法生效 - 如果需要指定索引类型(如哈希、全文索引),可以写成
USE INDEX @carIndex TYPE hash(替换hash为实际类型)
内容的提问来源于stack exchange,提问作者Carlo Nyte
相关产品推荐
相关产品推荐

