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
            },

0 ответов

Другие вопросы по тегам