动态更改ThinkingSphinx最大匹配/偏移

动态更改ThinkingSphinx最大匹配/偏移,sphinx,thinking-sphinx,Sphinx,Thinking Sphinx,我们的ThinkingSphinx索引了一个包含超过5亿条记录的表。我们正在尝试查找与给定查询匹配的120000条记录。但是,我不想更改max\u匹配项,因为我担心会耗尽RAM 显然,我们得到的错误是: Exception ThinkingSphinx::SphinxError -> offset out of bounds (offset=100000, max_matches=100000) <query> AND `sphinx_deleted` = 0 LIMIT 1

我们的ThinkingSphinx索引了一个包含超过5亿条记录的表。我们正在尝试查找与给定查询匹配的120000条记录。但是,我不想更改
max\u匹配项
,因为我担心会耗尽RAM

显然,我们得到的错误是:

Exception ThinkingSphinx::SphinxError -> offset out of bounds (offset=100000, max_matches=100000)

<query>
AND `sphinx_deleted` = 0 LIMIT 100000, 1000 OPTION max_matches=100000;
异常ThinkingSphinx::SphinxError->偏移量超出范围(偏移量=100000,最大匹配数=100000)
和'sphinx_deleted`=0限制100000,1000个选项的最大匹配数=100000;
有没有办法:

  • 如果我没有聚合足够的结果,动态更改最大匹配数
  • 我错过了一个更好的解决方案

  • 你可以把它设置成你需要的大小。ie将最大匹配设置为偏移+限制


    比如限制100000,1000个选项最大匹配=101000,或者限制7000,1000个选项最大匹配=8000,你可能已经意识到了这一点,但是以防万一:
    config/thinking\u sphinx.yml
    中的
    max\u matches
    设置是绝对最大值。但是,您可以将
    :max_matches
    传递到任何搜索查询,以限制该搜索请求的最大结果

    那么,您能否将
    config/thinking\u sphinx.yml
    中的
    max\u matches
    设置为120000,然后确保对除此特定搜索之外的大多数搜索强制执行较低的值