在 Redis 中,我有一个 JSON 文档的全文索引,其中包含一个名为
lemma_exact
的字段。它与底层 JSON 文档上的字符串数组相关联。
我可以通过以下查询使用索引找到某篇文章:
(@lemma_exact:{viking})
这将返回我正在寻找的文章。但是,如果我使用这个查询:
(@lemma_exact:{*ing})
我收到的文章中索引字段包含以 -ing 结尾的值。这就是我要的。然而,它并不包括所有文章 - 特别是,如本例所示,不包括字段为“viking”的文章。
这里可能出了什么问题?
我已经检查过的事情:
FT.SEARCH
的范围足够大,可以包含所有结果。FT.SEARCH
的超时时间增加到 10 000,但这并没有改变任何东西。超时也是我在这里的第一个想法,所以你的想法是正确的。您始终可以将 ON_TIMEOUT 行为设置为 FAIL 以确认未达到超时。但 10 秒对于 Redis 来说是永远的,所以我怀疑它会是永远。
但是,使用 MAXPREFIXEXPANSIONS 设置可能值得尝试。增加它是一种性能权衡,但我以前在前缀或后缀特别常见时见过此类问题。而且 -ing 当然很常见。