Джанго-стог.Как я могу отфильтровать `sqs.filter (id__in = qs_pk)`, если у меня есть список `qs_pk` с более чем 1024 элементами? - PullRequest
0 голосов
/ 19 марта 2019

Вот мой код:

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

когда я пытаюсь использовать метод sqs.count(), я получаю исключение:

asticsearch.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 голосов
/ 19 марта 2019

Я нашел что-то в elasticsearch журналах:

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

Возможно, что нужно отредактировать какое-то значение elasticsearch.yml

...