Sphinx RT 索引 - 有没有办法在索引定义中设置 max_matches

Sphinx RT Index - Is there any way to set max_matches in Index definition

我正在使用 SphinxQL 查询 RT 索引,它包含数百万条记录。我的问题是当我试图查询结果集的第二页

$searches = $prepStatement->query("select * from searchAnalytics limit $offset,$rowsPerPage")->execute();

它抛出错误

offset out of bounds (offset=1000, max_matches=1000) [ select * from searchAnalytics limit 1000,1000]

有人可以帮我解决这个问题吗? 有没有办法在索引定义中设置max_matches?

我的指数是

type = rt
rt_mem_limit = 1024M
path = /Users/vimson/projects/sphinx/data/searchAnalytics

rt_attr_string = SessionId
rt_attr_timestamp = Time
rt_field = Query
rt_attr_string = Query
rt_field = SearchLocation
rt_attr_string = SearchLocation
rt_attr_uint = Location
rt_attr_uint = CourseType
rt_attr_uint = SearchType
rt_attr_uint = CourseCount
rt_attr_multi = Courses

您需要使用 OPTION 设置查询时间,如评论中所述。

(配置文件的'searchd'部分曾经有一个(不是每个索引) - 但它只是应用了一个上限,仍然需要使用查询时间参数无论如何)

注意最好动态设置...

$max = max(1000,$offset+$rowsPerPage+300);
$qu = "... limit $offset,$rowsPerPage OPTION max_matches=$max";

而不是 只是 设置了一个愚蠢的高数字。