Полнотекстовый поиск с MeiliSearch и Laravel Scout | OTUS
Скидка до 15% на курсы ноября, декабря и января
❄️ До 20.12 Забрать скидку! →
Выбрать курс

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

MeiliSearch представляет собой простое и удобное решение для полнотекстового поиска. Его очень легко интегрировать в Laravel-приложение, используя драйвер для Laravel Scout.

Начнем с того, что Laravel Scout существует давно. Это прекрасный инструмент, который без особых проблем позволяет реализовывать полнотекстовый поиск для Eloquent-моделей. Как говорится, проверен временем. Во время запуска Scout может использовать драйвера сервиса Algolia (этот сервис обеспечивает полнотекстовый поиск посредством собственных серверов). Также существует возможность создавать свои драйвера. Вообще, как и множество других SaaS-предложений, Algolia дает возможность избавиться от лишней работы по разработке, позволяя быстро развернуть приложение.

Но бывают ситуации, когда просто нужен полнотекстовый поиск, причем простой как Algolia, но который можно было бы хостить у себя. Ну и чтобы не было таких сложностей как у того же Elasticsearch. Одно их решений — MeiliSearch.

Сейчас вы увидите, как легко настраивается локальный сервер поиска и подключается к Laravel. Для примера воспользуемся Laravel 8, а для поиска через MeiliSearch/Scout настроим модель App\Models\User.

Инсталляция

composer require laravel/scout

Публикация конфигурации Scout

php artisan vendor:publish --provider="Laravel\Scout\ScoutServiceProvider"

Добавляем трейт Laravel\Scout\Searchable в модель

1-1801-2ffdf9.png

Инсталлируем драйвер MeiliSearch Laravel Scout

composer require meilisearch/meilisearch-laravel-scout

Публикуем конфигурацию MeiliSearch

php artisan vendor:publish --provider="Meilisearch\Scout\MeilisearchServiceProvider" --tag="config"

Обновляем .env

Если ключа нет, оставьте MEILISEARCH_KEY пустым.

2-1801-5e0a35.png

Запускаем MeiliSearch

Тут надо следовать инструкциям из документации MeiliSearch.

Создаем поисковый индекс

3-1801-d68697.png

Импортируем документы для заполнения индекса:

4-1801-40ab49.png

Выполняем поиск по модели

5-1801-3f403a.png

Послесловие

Документация MeiliSearch охватывает намного больше вариаций применения, чем мы описали. Если вы желаете использовать инструмент на полную катушку, рекомендуется с этой документацией ознакомиться.

По материалам https://tighten.co/blog/full-text-search-with-meilisearch-and-scout/.

Не пропустите новые полезные статьи!

Спасибо за подписку!

Мы отправили вам письмо для подтверждения вашего email.
С уважением, OTUS!

Автор
0 комментариев
Для комментирования необходимо авторизоваться
Популярное
Сегодня тут пусто
Новогодние скидки в Otus!-15% ❄️
Успейте забрать свою скидку до 20.12 →