使用 django-sphinx 进行搜索会给我 results._sphinx 说有 68 个结果,但是当我遍历它们时,我只能得到其中的前 20 个。
我敢肯定有办法解决这个问题,这是设计使然,但它正式让我大吃一惊。有人知道如何获得完整的查询集吗?
使用 django-sphinx 进行搜索会给我 results._sphinx 说有 68 个结果,但是当我遍历它们时,我只能得到其中的前 20 个。
我敢肯定有办法解决这个问题,这是设计使然,但它正式让我大吃一惊。有人知道如何获得完整的查询集吗?
我终于想通了。
显然,在您访问查询集之前,查询集仅返回 20 次命中。或类似的东西。
所以,如果你明确地想要迭代整个事情,你必须这样做:
for result in results[0:results.count()]:
print result
或者类似的东西,它将明确地查询整个事情。啊。这应该被清楚地记录在案……但事实并非如此。
在破解源代码后,我明确设置了 _limit 变量。完成这项工作,并发出一个实际限制:
qs = MyEntity.search.query(query_string)
qs._limit = limit
for result in qs:
print result
为我工作:
在狮身人面像配置文件中:
max_matches = 5000
在 Django 代码中:
desc_obj = Dictionary.search.query( search_desc )
desc_obj._maxmatches = 5000
或在设置中:
SPHINX_MAX_MATCHES = 5000