Требования:
✔ Поддержка морфологии;
✔ Поиск по контексту, синонимам, словосочетаниям;
✔ Исправление ошибок;
✔ Транслитерация;
✔ Использование языка поисковых запросов.
① Оператор вводит поисковую фразу/слово отправляет запрос на сервис. Сервис проводит предпроцессную обработку запроса согласно требованиям выше, отправляет его на поисковый сервер SOLR и возвращает результат отсортированный по релевантности.
② Фоновый поток настороне сервиса один раз в 15 минут обращается к источнику данных. Получает данные и преобразует в объекты для индексирования. После чего обновляет индекс в поисковом сервере SOLR.
③ Взаимодействие сервиса с поисковым сервером SOLR - отпавляет запросы к поисковому серверу и получает результат, а также обновляет поисковый индекс на основе данных из потока 2.