对于我们的用例,我们必须索引大约 100K 文档,其中包含一个文本字段,大多数时候由一个单词(例如昵称)和几个数字字段组成。 此外,我们需要能够以有效的方式在文本字段上运行“前缀查询”。例如,我们需要获取所有文本字段以“fan”开头的文档。 我们已经阅读了文档,看起来
使用通配符查询来运行前缀搜索可能会导致严重的性能问题,因为像“fan*”这样的查询可能会扩展到数千个术语(我们希望字典包含更多)超过 10K 项)。 作为一种替代且希望更有效的方法,我们正在考虑仅对标签和数字字段使用 Redisearch 索引,并为文本字段构建我们自己的索引(使用集合)。
我们的想法是首先
从我们自己的索引中检索与文本字段上的前缀查询匹配的所有文档 ID,然后将这些 ID 作为参数传递给 FT.SEARCH 命令的 INKEYS 参数。 但是我们想知道使用具有数百或数千个值的 INKEYS 是否基本上会导致相同的性能问题。
另外,INKEYS 到底是如何工作的?效率高吗?