1

我有大约 3000 万条记录的地址数据库(作为哈希)。我正在向所有地址字段添加文本索引。搜索看起来没问题,直到我想搜索出现在许多记录中的单词。例如,搜索出现在大约 2500000 条记录中的单词“London”需要 4.5 秒 ( FT.SEARCH idx:a4 london LIMIT 0 2)。有没有可能改善这个结果,做任何改变?谢谢你的帮助。

4

1 回答 1

2

如果您不关心按评分排序的前 2 个结果(由 tfidf 计算),您可以使用 FT.AGGREGATE 它将在找到前 2 个结果后返回(不获取所有结果,计算分数,对它们进行排序,并获得前 2 个结果)。它应该如下所示:

FT.AGGREGATE idx:a4 london LIMIT 0 2

请注意,您应该使用 LOAD 来决定从哈希中返回哪些字段。请参阅此处以获取完整的 FT.AGGREGATE 文档: https ://oss.redislabs.com/redisearch/Aggregations/

同样,如果您选择使用它,请知道您正在失去按结果分数排序。

于 2021-06-06T19:05:21.483 回答