REDIS:高效前缀搜索的建议

问题描述 投票:0回答:2

对于我们的用例,我们必须索引大约 100K 文档,其中包含一个文本字段,大多数时候由一个单词(例如昵称)和几个数字字段组成。 此外,我们需要能够以有效的方式在文本字段上运行“前缀查询”。例如,我们需要获取所有文本字段以“fan”开头的文档。 我们已经阅读了文档,看起来

使用通配符查询来运行前缀搜索可能会导致严重的性能问题

,因为像“fan*”这样的查询可能会扩展到数千个术语(我们希望字典包含更多)超过 10K 项)。 作为一种替代且希望更有效的方法,我们正在考虑仅对标签和数字字段使用 Redisearch 索引,并为文本字段构建我们自己的索引(使用集合)。

我们的想法是首先

从我们自己的索引中检索与文本字段上的前缀查询

匹配的所有文档 ID,然后将这些 ID 作为参数传递给 FT.SEARCH 命令的 INKEYS 参数 但是我们想知道使用具有数百或数千个值的 INKEYS 是否基本上会导致相同的性能问题。

另外,INKEYS 到底是如何工作的?效率高吗?

search redis full-text-search redisearch
2个回答
1
投票
MAXPREFIXEXPANSIONS

来提高前缀查询性能。如果您使用单个术语或几个术语,另一个提示可能是在创建索引时使用标签而不是文本,标签也有更好的性能。 此外,我很想了解更多有关您的用例的信息,请通过

[电子邮件受保护]

与我联系


0
投票

如果您有兴趣,请随意探索 Treds 或提出任何问题 - 我很乐意提供帮助!

https://github.com/absolutelightning/treds

© www.soinside.com 2019 - 2024. All rights reserved.