为什么 RedisSearch 在使用标签字段上的前缀进行查询时,结果中缺少文档?

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

在 Redis 中,我有一个 JSON 文档的全文索引,其中包含一个名为

lemma_exact
的字段。它与底层 JSON 文档上的字符串数组相关联。

我可以通过以下查询使用索引找到某篇文章:

(@lemma_exact:{viking})

这将返回我正在寻找的文章。但是,如果我使用这个查询:

(@lemma_exact:{*ing})

我收到的文章中索引字段包含以 -ing 结尾的值。这就是我要的。然而,它并不包括所有文章 - 特别是,如本例所示,不包括字段为“viking”的文章。

这里可能出了什么问题?

我已经检查过的事情:

  • 索引上禁用停用词(设置为空列表)。
  • JSON 文档在索引过程中没有错误。
  • 我传递给
    FT.SEARCH
    的范围足够大,可以包含所有结果。
  • 我将
    FT.SEARCH
    的超时时间增加到 10 000,但这并没有改变任何东西。
redis redisjson redis-search
1个回答
0
投票

超时也是我在这里的第一个想法,所以你的想法是正确的。您始终可以将 ON_TIMEOUT 行为设置为 FAIL 以确认未达到超时。但 10 秒对于 Redis 来说是永远的,所以我怀疑它会是永远。

但是,使用 MAXPREFIXEXPANSIONS 设置可能值得尝试。增加它是一种性能权衡,但我以前在前缀或后缀特别常见时见过此类问题。而且 -ing 当然很常见。

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