【问题标题】:Error in Aerospike while accessing secondary index AEROSPIKE_ERR_INDEX_NOT_READABLE访问二级索引 Aerospike_ERR_INDEX_NOT_READABLE 时 Aerospike 出错
【发布时间】:2023-03-27 09:35:01
【问题描述】:

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

CREATE INDEX index_id ON test.class (id) STRING;

任何建议将不胜感激。

【问题讨论】:

    标签: aerospike


    【解决方案1】:
    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”时 - 读/写 - 您可以进行 SI 查询。
    您不必重新启动 Aerospike 服务器。

    【讨论】:

    • 创建索引后我等了一天,但是没有使用索引在重新启动后仍然处于“WO”状态,重建索引然后状态变为“RW”状态。
    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-03-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-09-18
      • 1970-01-01
      相关资源
      最近更新 更多