1,0×
9 просмотров · 1 год назад
00:00/02:24
Описание
Как устроен поиск? Что внутри поисковой системы? Пример на Golang
1 год назад • 9 просмотров1 поставил "Нравится"
Уверен, что вы много раз использовали различные поисковые системы. Это могут быть глобальные поисковые системы, интернет-магазины или корпоративные справочники. Главная задача алгоритма — показать несколько наиболее релевантных документов. Например, если вы производите поиск новостей, то простого наличия нужной фразы в документах будет недостаточно. Для повышения качества поиска добавляют другие факторы: время, регион, статистика просмотров, категория, оценка. Следовательно, вся необходимая информация уже должна быть в индексе. Другими словами, все документы необходимо заранее подготовить. Как минимум, текстовую информацию нужно очистить и преобразовать в нужную структуру данных (инвертированный индекс). Возможно, вам потребуются искусственные нейронные сети для автоматического выявления категории, а также для дополнения документа новым текстом. Для наглядности посмотрим пример кода, который выполняет обработку информации перед отправкой её в хранилище. Я специально напишу упрощённый код, чтобы вам было удобнее его воспринимать в формате видео. Тут нет отдельных горутин и проверок на ошибки, а также нет логирования. Как видите, из внешнего источника мы получаем текст. На этом этапе применяются два алгоритма машинного обучения. Первый из них определяет категорию, а второй алгоритм ставит оценку документу. В этот код могут быть добавлены любые произвольные правила. Главное, чтобы они положительно влияли на релевантность.