django-haystack。如果我有包含超过1024个元素的qs_pk列表,该如何过滤sss.filter(id__in = qs_pk)?

时间:2019-03-19 08:58:29

标签: django elasticsearch django-haystack

这是我的代码:

qs_pk = Vacancy.objects.values_list('pk', flat=True)
sqs = SearchQuerySet().models(Vacancy)
sqs = sqs.filter(id__in=qs_pk)

当我尝试使用sqs.count()方法时,出现异常:

  

elasticsearch.exceptions.RequestError:TransportError(400,'search_phase_execution_exception','解析查询失败[id:((“ 281134”或“ 281135”或“ 272222”或“ 287848”或“ 190255”或“ 266921”或“ 235700”或“ 235683”或“ 281138”或“ 281144”或“ 186683”或“ 281145”或“ 281147”或“ 244712​​” ................

但是如果我限制qs_pk = qs_pk[:1024]那就没问题了。

1 个答案:

答案 0 :(得分:0)

我在elasticsearch日志中找到了一些东西:

Caused by: org.apache.lucene.search.BooleanQuery$TooManyClauses: maxClauseCount is set to 1024

也许需要编辑elasticsearch.yml的某些值