*Redis FT.SYNDUMP 命令

FT.SYNDUMP 用于返回指定同义词组(synonym group)中的所有词项,或返回索引中所有同义词组的 ID 列表。


*语法

FT.SYNDUMP index_name

*参数说明

参数 类型 必填 说明
index_name String 索引名称

*返回值

返回一个数组,包含同义词组信息: - 每个同义词组以组 ID 开头,后跟该组包含的所有词项 - 格式:[group_id, term1, term2, ...] - 若索引中没有同义词,返回空数组


*时间复杂度

O(n),其中 n 是索引中同义词组的总数和每个组中的词项数量。


*示例

*基本用法

> FT.SYNDUMP myIndex
1) 1) "1"
   2) "phone"
   3) "telephone"
   4) "cell"
   5) "mobile"
2) 1) "2"
   2) "laptop"
   3) "notebook"
   4) "computer"

*空同义词索引

> FT.SYNDUMP emptyIndex
(empty array)

*常见错误

错误 原因 解决
Unknown index name 索引不存在 检查索引名称或先创建索引

*最佳实践

  • 使用 FT.SYNDUMP 备份同义词配置,便于迁移和恢复
  • 定期检查同义词组内容,确保没有重复或冲突的定义
  • 在更新同义词组前先用 FT.SYNDUMP 查看现有配置,避免意外覆盖
  • 将同义词配置纳入版本控制,作为搜索配置的一部分
  • 同义词组 ID 通常从 1 开始自动递增,dump 输出可帮助确认当前组 ID 分配情况

*FAQ

Q1: FT.SYNDUMP 会返回所有同义词组吗? A: 是的,返回索引中所有已定义的同义词组及其包含的词项。

Q2: 同义词组 ID 可以自定义吗? A: 同义词组 ID 由 RediSearch 内部自动分配(通常从 1 开始递增),用户无法直接指定 ID。

Q3: 如何只查看某个特定同义词组? A: FT.SYNDUMP 不支持按组 ID 过滤,会返回所有组。可在客户端过滤输出结果。

Q4: 同义词和查询扩展器有什么区别? A: 同义词是静态的等价词映射,在索引和查询阶段都会应用。查询扩展器(如前缀扩展、模糊扩展)是动态的,在查询时根据规则扩展。