Полнотекстовый поиск по статистике звонков

Очень сильно раздражает, если для поиск нужного звонка в статистике любой АТС нужно ждать десятки секунд, а то и минуты. А теперь представьте, что Вы постоянно работаете со статистикой… Каждый поиск, каждый новый фильтр – потерянные минуты, которые собираются в часы 🙁 Вы можете увеличить вычислительные ресурсы сервера, можно удалить старые записи… А можно перейти на полнотекстовый поиск. Вот это последние мы и решили испытать в ожидающем нас новом релизе webitel.

Те, кто пользовался админкой в webitel 3.0 или 3.1, очень хорошо помнят ее ограничения при работе со статистикой – только фильтры по дате. Я сам неоднократно не мог найти нужный мне звонок:

Старая статистика звонков

В релизе 3.2 мы презентовали новый Webitel WebClient, который обзавелся не только новым видом, но и новым конструктором фильтров:

Конструктор фильтров Теперь каждый может отыскать все необходимое, задав условие и колонки для поиска. Мы вынесли в конструктор фильтров только два десятка из доступных в статистике параметров. Как мы считали – самое важное. Но, наши клиенты захотели так же искать звонки по другим параметрам, либо, по собственным переменным, заданным в сценарии маршрутизации ACR.

В обновление 3.2.2 появляется возможность настраивать представление и колонки поиска в статистике на свое усмотрение:

Настройка колонки

Это нововведение очень понравилось клиентам и они начали активно им пользоваться. И тут мы столкнулись с новой проблемой – отсутствие индексов. Вы ж не можете на все (400 – 500 значений) параметры звонка создать индексы! А что будет, если искать в базе с 500 000 звонков в не проиндексированной колонке по фильтру содержит? Правильно – ничего хорошего 🙂 Как результат, вместо новой удобной функции для клиентом, мы добавили новый геморрой для разработчиков.

После нескольких дней оптимизации запросов, оптимизации MongoDB и даже перевод на XFS файловую систему, мы решили подойти к проблеме с другой стороны… Один звонок – это сложный JSON файл с множеством динамических параметров. Так же, пользователи могут создавать и использовать собственные переменные. У нас уже имеется elasticsearch для работы kibana. Так почему бы не задействовать его и для клиентской части webitel? Задействовали – понравилось 🙂

В новом webitel 3.3.0 ожидайте полнотекстовый поиск по статистике звонков, для которого несколько миллионов записей – это всего лишь одна-две секунды на поиск нужного Вам результата:

Полнотекстовый поиск

PS: Старая версия останется доступна через изменение в конфигурационном файле. Мы будем рекомендуем пользоваться полнотекстовый поиском и в дальнейших обновлениях планируем расширять его функционал и внешний вид.

Leave a Reply

Your email address will not be published. Required fields are marked *