Elasticsearch работает очень медленно при возврате всех результатов
У меня есть индекс ~113000 документов. Я пытаюсь получить их все, и мне плевать на счет. в основном выбор * из индекса;
И я делаю это в Python с использованием asticutils (пока не нашел время переключиться на asticsearch-dsl)
Бег
S().indexes('da_userstats').query().count()
завершается примерно за 0,003 секунды.
Бег
S().indexes('da_userstats').query()[0:113595].execute().objects
занимает около 15 секунд.
Из того, что я понимаю из документации, оба должны форсировать исполнение, поэтому я не понимаю, почему существует огромная разница во времени.
В отображении я попытался пометить поля как не анализируемые, но это не имело никакого эффекта. Я действительно не понимаю, почему так много различий.
@classmethod
def get_mapping(cls):
return {
'properties': {
'id': {
'type': 'integer',
'index': 'not_analyzed',
"include_in_all": False,
},
'email': {
'type': 'string',
'index': 'not_analyzed',
"include_in_all": False
},
'username': {
'type': 'string',
'index': 'not_analyzed',
"include_in_all": False
},
'date_joined': {
'type': 'string',
'index': 'not_analyzed',
"include_in_all": False
},
'last_activity': {
'type': 'string',
'index': 'not_analyzed',
"include_in_all": False
},
'last_activity_web': {
'type': 'string',
'index': 'not_analyzed',
"include_in_all": False
},
'last_activity_ios': {
'type': 'string',
'index': 'not_analyzed',
"include_in_all": False
},