搜索操作结果少于预期,为什么?

最后更新于 2024 年 3 月 22 日

问题

搜索操作的结果少于预期;为什么?

回答

在以下示例中,我们描述了并非所有文档都已索引的情况。

FT.CREATE location_idx ON HASH PREFIX 1 location: SCHEMA Name AS name TAG 

HSET location:1 Name Rome Population 3000000
HSET location:2 Name Milan Population 3500000
HSET location:3 Name Naples Population ""

 9) num_docs
10) "3"

FT.CREATE location_idx ON HASH PREFIX 1 location: SCHEMA Name AS name TAG Population AS population NUMERIC SORTABLE

 9) num_docs
10) "2"

检查 `FT.INFO` 中的 `hash_indexing_failures`,错误可能阻止数据被索引。在上面的示例中,当强制执行 `NUMERIC` 字段时,如果在哈希中存储了字符串,则整个哈希将不会被索引。

问题也可能是由于超时导致的,超时会静默地中断命令并返回部分结果。尝试增加超时时间(通过 `FT.CONFIG` 或通过 `FT.SEARCH` 的 `TIMEOUT` 参数)。默认超时时间为 500 毫秒。

参考

查看 文档 以了解有关超时配置的更多信息。