You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

GridDB报错CM_NOT_SUPPORTED:如何检查并设置列指定索引类型?

GridDB 5.1.0 CE 解决 CM_NOT_SUPPORTED 索引相关报错

检查列支持的索引类型

GridDB的索引支持完全依赖列的数据类型,直接通过以下方式确认:

  • 用gs_sh连接集群后,执行show container <容器名> schema查看列类型:
    • TREE/HASH索引:支持STRING、BOOL、BYTE、SHORT、INTEGER、LONG、FLOAT、DOUBLE、TIMESTAMP、DATE、TIME类型列
    • SPATIAL索引:仅支持GEOMETRY类型列
    • 不支持索引的列:ARRAY、LIST、MAP这类集合/数组类型列,无法创建任何索引
  • 也可以直接尝试创建索引,若返回CM_NOT_SUPPORTED,就说明该列不支持对应索引类型

排查报错需查看的配置与命令

配置文件

核心配置文件gs_cluster.json(默认路径/var/lib/griddb/conf/gs_cluster.json),重点检查:

  • clusterName:确保连接集群时使用的名称和配置一致
  • dataStoreDir:WSL环境下注意检查该目录的Linux权限,避免因权限问题导致操作失败

命令行工具

  • gs_stat:查看集群节点状态,确认集群正常运行
  • gs_sh:所有索引相关操作的入口工具,用于查看schema、创建/删除索引

设置列索引的示例步骤

以创建TREE索引为例:

  1. 启动gs_sh并连接集群:
    gs_sh -u admin/admin
    
  2. 切换到目标数据库(默认是public):
    use public;
    
  3. 查看目标容器的schema,确认列类型符合要求:
    show container test_container schema;
    
  4. 为指定列创建TREE索引:
    create index idx_test_id on test_container (id) using tree;
    
  5. 验证索引是否创建成功:
    show index in test_container;
    

其他索引类型的创建命令:

  • HASH索引:
    create index idx_test_name on test_container (name) using hash;
    
  • SPATIAL索引(仅GEOMETRY列可用):
    create index idx_test_geo on test_container (location) using spatial;
    

内容的提问来源于stack exchange,提问作者Yousef

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.06 10:30:09