为什么 FT.DROPINDEX 带有 DD 选项没有删除我的所有文档?
最后更新于 2024 年 5 月 11 日
问题
为什么 FT.DROPINDEX
带有 DD
选项没有删除我的所有文档?
答案
可能在索引异步进行时发生了索引删除。
如果索引创建仍在运行(FT.CREATE
正在异步运行),则只删除已索引的文档哈希。待索引的文档哈希仍保留在数据库中。要检查索引的完成情况,请使用 FT.INFO
。
索引时发生的错误也可能导致同样的问题。如果发生错误,文档将不会被索引,并且不会被设置了 DD
选项的 FT.DROPINDEX
命令删除。请查看以下示例。
为数值创建索引。
FT.CREATE numeric_idx PREFIX 1 cnt: SCHEMA val NUMERIC
添加两个文档。
HSET cnt:1 val 5
HSET cnt:2 val "word"
预计第二个文档不会被索引,因为 val
的值不是数字。请使用以下命令检查:
FT.INFO numeric_idx
并确认有一个文档已被索引,并且发生了失败。
9) num_docs
10) "1"
...
41) hash_indexing_failures
42) "1"
现在,删除索引和文档,并验证只有一个文档被删除。
127.0.0.1:6379> FT.DROPINDEX numeric_idx DD
OK
127.0.0.1:6379> EXISTS cnt:1
(integer) 0
127.0.0.1:6379> EXISTS cnt:2
(integer) 1
参考
请参阅文档以了解有关 FT.DROPINDEX 的更多信息。