我们的ThinkingSphinx为一张包含超过5亿条记录的表编制索引。我们正在尝试查找与给定查询匹配的120,000条记录。但是,我不想更改max_matches
,因为担心我们的内存不足。
显然,我们得到的错误是:
Exception ThinkingSphinx::SphinxError -> offset out of bounds (offset=100000, max_matches=100000)
<query>
AND `sphinx_deleted` = 0 LIMIT 100000, 1000 OPTION max_matches=100000;
有没有办法:
max_matches
答案 0 :(得分:0)
您可以根据需要将其设置为 。即将max_matches设置为offset + limit。
即LIMIT 100000, 1000 OPTION max_matches=101000
或LIMIT 7000, 1000 OPTION max_matches=8000
答案 1 :(得分:0)
您可能已经意识到这一点,但以防万一:max_matches
中的config/thinking_sphinx.yml
设置是绝对最大值。但是,您可以将:max_matches
传递给任何搜索查询,以限制该搜索请求的最大结果。
那么,您是否可以将max_matches
中的config/thinking_sphinx.yml
设置为120,000,然后确保您对除此特定搜索之外的大多数搜索都执行较低的值?