Laravel Scout - это популярный пакет, который предоставляет простой и удобный способ добавить полнотекстовый поиск в ваше приложение Laravel. Он поддерживает множество поисковых систем, включая MeiliSearch, поисковую систему с открытым исходным кодом, которую легко настроить и использовать.
В этой статье мы шаг за шагом проведем вас через процесс начала работы с Laravel Scout и MeiliSearch.
Сначала вам нужно установить Laravel Scout в ваше приложение Laravel. Вы можете установить Laravel Scout с помощью Composer:
composer require laravel/scout
После установки пакета необходимо опубликовать конфигурационный файл Scout, выполнив следующую команду:
php artisan vendor:publish --provider="Laravel\Scout\ScoutServiceProvider"
Далее необходимо установить MeiliSearch, который является поисковой системой, которую Laravel Scout будет использовать для индексации и поиска наших данных. Чтобы установить MeiliSearch, вы можете выполнить следующую команду:
composer require meilisearch/meilisearch-laravel-scout
Опубликовать конфигурацию MeiliSearch
php artisan vendor:publish --provider="Meilisearch\Scout\MeilisearchServiceProvider" --tag="config"
После установки Laravel Scout и MeiliSearch необходимо настроить Scout на использование MeiliSearch. Откройте файл .env и добавьте следующую конфигурацию:
SCOUT_DRIVER=meilisearch MEILISEARCH_HOST=http://127.0.0.1:7700 MEILISEARCH_KEY=my_master_key
Переменная SCOUT_DRIVER указывает, что мы используем MeiliSearch в качестве бэкенда поисковой системы, а MEILISEARCH_HOST указывает URL нашего экземпляра MeiliSearch. Наконец, MEILISEARCH_KEY - это необязательный ключ API, который можно использовать для защиты доступа к экземпляру MeiliSearch.
Далее необходимо запустить сервер MeiliSearch, выполнив следующую команду:
./vendor/bin/meilisearch --master-key=my_master_key
Примечание:
Замените "my_master_key" на свой собственный мастер-ключ.
Часть команды "./vendor/bin/meilisearch" указывает расположение двоичного файла MeiliSearch относительно вашего текущего рабочего каталога. В зависимости от того, как вы установили MeiliSearch, расположение двоичного файла может быть другим.
Далее вам нужно создать модель с возможностью поиска в вашем приложении Laravel. Модель с возможностью поиска - это обычная модель Laravel, которая использует признак Laravel\Scout\Searchable и реализует метод toSearchableArray, чтобы указать, какие атрибуты должны быть доступны для поиска.
Например, давайте создадим модель User с возможностью поиска:
<?php namespace App\Models; use Illuminate\Database\Eloquent\Factories\HasFactory; use Illuminate\Foundation\Auth\User as Authenticatable; use Laravel\Scout\Searchable; class User extends Authenticatable { use HasFactory, Searchable; /** * Get the indexable data array for the model. * * @return array */ public function toSearchableArray() { return [ 'id' => $this->id, 'name' => $this->name, 'email' => $this->email, ]; } }
В этом примере я добавил признак Searchable в модель User и реализовал метод toSearchableArray, чтобы указать, какие атрибуты должны быть доступны для поиска. Я включил атрибуты id, name и email в поисковый индекс.
Теперь, когда у вас есть модель с возможностью поиска, вы можете создать поисковый индекс в meiliSearch с помощью команды scout:index. Команда scout:index создает поисковый индекс для указанной модели в MeiliSearch и индексирует все записи из модели в поисковый индекс.
Чтобы создать поисковый индекс для модели пользователей, выполните в терминале следующую команду:
php artisan scout:index users
Это создаст поисковый индекс с именем users в вашем экземпляре MeiliSearch и проиндексирует все записи из таблицы users вашей базы данных в этот поисковый индекс.
Вы также можете импортировать всю вашу таблицу в meilisearch с помощью команды artisan:
php artisan scout:import "App\Models\User"
После создания поискового индекса вы можете начать поиск записей, используя метод поиска, предоставляемый Laravel Scout.
$results = User::search('search query')->get();
В результате будут получены все пользователи, соответствующие поисковому запросу.
Источники и вдохновение для этой статьи включают официальную документацию Laravel Scout (https://laravel.com/docs/8.x/scout ) и официальную документацию MeiliSearch ( https://docs.meilisearch.com/).
05.05.2023 14:00
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
05.05.2023 11:59
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря своим методам, они делают код очень простым для понимания и читабельным.
05.05.2023 11:57
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний, то, не теряя времени, практикуйте наш бесплатный онлайн тест 1100+ JavaScript MCQs и развивайте свои навыки и знания.
05.05.2023 09:26
Toor - Travel Booking Angular Template один из лучших Travel & Tour booking template in the world. 30+ валидированных HTML5 страниц, которые помогут вам настроить, как будет выглядеть ваш сайт Temple, и вы можете настроить его дизайн в зависимости от ваших потребностей в дополнение к более чем 15+...