*Redis FT.DROPINDEX 命令

FT.DROPINDEX 删除 RediSearch 索引及其关联数据结构。


*语法

FT.DROPINDEX index [DD | KEEPDD]

*参数说明

参数 类型 必填 说明
index String 索引名称
DD Flag 删除索引同时删除底层文档数据(HASH/JSON)
KEEPDD Flag 仅删除索引,保留底层文档数据(默认)

*返回值

  • OK:索引删除成功
  • Error:索引不存在

*时间复杂度

O(N),N 为索引中的文档数量。删除底层数据时额外 O(M),M 为键数量。


*示例

*仅删除索引(保留数据)

> FT.DROPINDEX idx:products
OK

*删除索引及数据

> FT.DROPINDEX idx:temp DD
OK

*显式保留数据

> FT.DROPINDEX idx:articles KEEPDD
OK

*常见错误

错误 原因 解决
Index not found 索引不存在 确认索引名称,可用 FT._LIST 查看

*最佳实践

  • 默认 KEEPDD 安全,不会误删业务数据
  • 需要清理数据时使用 DD,但需谨慎确认
  • 重建索引前先 DROPINDEX,再 FT.CREATE
  • 生产环境删除前先确认索引无查询依赖

*FAQ

Q1: FT.DROPINDEX 和 FT.DROPINDEX DD 有什么区别? A: 默认仅删除索引元数据;DD 同时删除底层 Redis 键(HASH/JSON 文档)。

Q2: 删除索引后别名会怎样? A: 关联别名会自动删除。

Q3: 可以删除正在被查询的索引吗? A: 可以,但正在进行的查询可能会收到错误。

Q4: 误删索引后如何恢复? A: 若未使用 DD,只需重新 FT.CREATE,数据会自动重新索引。若使用了 DD,数据已删除,需从备份恢复。