访问二级索引时 Aerospike 出错 AEROSPIKE_ERR_INDEX_NOT_READABLE

Error in Aerospike while accessing secondary index AEROSPIKE_ERR_INDEX_NOT_READABLE

当我尝试访问二级索引时,Aerospike 抛出 AEROSPIKE_ERR_INDEX_NOT_READABLE 错误。使用以下语法创建索引

在 test.class (id) 字符串上创建索引 index_id;

如有任何建议,我们将不胜感激。

重新启动 Aerospike 后,我可以使用新创建的索引。

aql> create index id1 on ns1.testset (1) string;
OK, 1 index added.

aql> show indexes
+-------+-----+-----------+-----------+-------+-----------+------+----------+
| ns    | bin | indextype | set       | state | indexname | path | type     |
+-------+-----+-----------+-----------+-------+-----------+------+----------+
| "ns1" | "1" | "NONE"    | "testset" | "WO"  | "id1"     | "1"  | "STRING" |
+-------+-----+-----------+-----------+-------+-----------+------+----------+
[127.0.0.1:3000] 1 row in set (0.001 secs)

+-------+-----+-----------+-----------+-------+-----------+------+----------+
| ns    | bin | indextype | set       | state | indexname | path | type     |
+-------+-----+-----------+-----------+-------+-----------+------+----------+
| "ns1" | "1" | "NONE"    | "testset" | "WO"  | "id1"     | "1"  | "STRING" |
+-------+-----+-----------+-----------+-------+-----------+------+----------+
[172.14.10.12:3000] 1 row in set (0.002 secs)

OK

aql> show indexes
+-------+-----+-----------+-----------+-------+-----------+------+----------+
| ns    | bin | indextype | set       | state | indexname | path | type     |
+-------+-----+-----------+-----------+-------+-----------+------+----------+
| "ns1" | "1" | "NONE"    | "testset" | "RW"  | "id1"     | "1"  | "STRING" |
+-------+-----+-----------+-----------+-------+-----------+------+----------+
[127.0.0.1:3000] 1 row in set (0.001 secs)

+-------+-----+-----------+-----------+-------+-----------+------+----------+
| ns    | bin | indextype | set       | state | indexname | path | type     |
+-------+-----+-----------+-----------+-------+-----------+------+----------+
| "ns1" | "1" | "NONE"    | "testset" | "RW"  | "id1"     | "1"  | "STRING" |
+-------+-----+-----------+-----------+-------+-----------+------+----------+
[172.14.10.12:3000] 1 row in set (0.002 secs)

OK

注意:1)创建索引时不需要分号但不会报错。所以:

aql> create index id1 on ns1.testset (1) string 

将是正确的方法。 2) 一旦发出创建索引的命令,根据数据大小,构建 SI 需要时间。检查状态:WO --> 索引尚不可读,但您可以插入记录,它们将被编入索引。当状态变为 "RW" - read/write - 你可以进行 SI 查询。
您不必重新启动 Aerospike 服务器。