我使用Official Aerospike Package进行golang。
有没有办法获得所有现有索引的列表?
AQL>显示索引
此外,我还没有找到任何方法来执行纯粹的aql查询。
我该怎么做?
更新
我正在寻找类似于此的东西,但是对于airospike(来自Rails的例子)
custom_query = "select * from users"
result = ActiveRecord::Base.connection.execute(custom_query)
答案 0 :(得分:2)
aql>显示索引 是一个有效的aql命令,应该显示您当前在服务器上拥有的所有二级索引。
aql运行下面的C api。你可以在一个rudimnetary级别使用aql做很多事情。 键入:aql>帮助它将所有的aql命令抛给你,剪切和粘贴! aql还将命令历史记录存储在文本文件中 - 因此会在会话中持续存在。 aql>运行'filepath / filename'是一种将所有aql命令存储在文本文件中并运行它们的便捷方法。
Re:aql查询 - 请看:从ns中选择*。 where ...如果预先构建了二级索引,则可以执行相等和范围查询。
Aerospike ver 3.12+引入了谓词过滤 - 即〜复杂查询 - 我认为aql尚未更新以运行那些。
HTH。
答案 1 :(得分:1)
AQL是一种管理和数据浏览工具。这并不是Aerospike的SQL,因为Aerospike本身并没有实现查询语言。相反,所有Aerospike客户端都为您提供了一个API来进行直接获取,放置,扫描,查询调用,这些是程序性的,而不是像SQL那样的声明式(您可以在其中说明您希望结果和服务器如何计算查询计划)。 Piyush提到谓词过滤API非常棒,可以让你通过扫描和二级索引查询创建复杂的查询。
特别是关于获取所有索引的问题,这是您应该使用info命令的类型。 Aerospike允许您通过它获取和设置配置参数,并获得各种指标,运行microbenchmark等。管理和监控所需的一切。
您可以通过独立的sindex
工具运行asinfo,也可以使用任何客户提供的info command来调用它。
asinfo -v "sindex"