为什么 django-sphinx 只输出 20 个结果?我怎样才能得到剩下的?

发布于 2024-08-29 10:41:11 字数 144 浏览 8 评论 0原文

使用 django-sphinx 进行搜索会得到 results._sphinx ,它表示有 68 个结果,但是当我迭代它们时,我只能得到其中的前 20 个。

我确信有办法解决这个问题,而且这是设计使然,但它正式让我感到困惑。有人知道如何获取完整的查询集吗?

Doing a search using django-sphinx gives me results._sphinx that says there were 68 results, but when I iterate over them, I can only get at the first 20 of them.

I'm SURE there's a way around this, and that this is by design, but it's officially stumping the heck out of me. Does anybody know how to get the complete queryset?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

转身以后 2024-09-05 10:41:11

我终于明白了这一点。

显然,在您访问查询集之前,查询集仅返回 20 个命中。或者类似的东西。

因此,如果您明确希望对整个事物进行迭代,则必须执行以下操作:

for result in results[0:results.count()]:
    print result

或者执行相应操作,这将显式查询整个事物。啊。这应该被清楚地记录下来......但事实并非如此。

I figured this out finally.

Apparently, the querysets only return 20 hits until you access the queryset. Or something like that.

So, if you explicitly want the iterate over the whole thing, you have to do:

for result in results[0:results.count()]:
    print result

Or something to that effect, which will query the entire thing explicitly. Ugh. This should be clearly documented...but it not.

╰ゝ天使的微笑 2024-09-05 10:41:11

通过源代码进行黑客攻击后,我显式设置了 _limit 变量。完成这项工作,并发出实际的限制:

qs = MyEntity.search.query(query_string)
qs._limit = limit
for result in qs:
    print result

After hacking through source, I set the _limit variable explicitly.. Does the job, and issues an actual limit:

qs = MyEntity.search.query(query_string)
qs._limit = limit
for result in qs:
    print result
夏末 2024-09-05 10:41:11

为我工作:

在sphinx配置文件中:

   max_matches     = 5000

在django代码中:

   desc_obj = Dictionary.search.query( search_desc )
   desc_obj._maxmatches = 5000

或在设置中:

   SPHINX_MAX_MATCHES = 5000

work for me:

in sphinx config file:

   max_matches     = 5000

in django code:

   desc_obj = Dictionary.search.query( search_desc )
   desc_obj._maxmatches = 5000

or in settings:

   SPHINX_MAX_MATCHES = 5000
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文