Чтобы установить и настроить Elasticsearch в Laravel, выполните следующие действия:
Шаг 1: Установите Elasticsearch
Во-первых, вам нужно установить Elasticsearch на свой сервер или использовать Elasticsearch облачный сервис, такой как Elastic Cloud. Посетите Elasticsearch официальный сайт, чтобы загрузить соответствующую версию и следуйте инструкциям по установке.
Шаг 2: Установите Elasticsearch Package для Laravel
Затем установите Elasticsearch пакет для Laravel. Существуют различные пакеты, которые поддерживают Elasticsearch файлы. Для установки откройте и выполните следующую команду: Laravel Laravel Scout Laravel Scout terminal
composer require laravel/scout
Шаг 3: Настройте Elasticsearch в Laravel
После установки Laravel Scout вам необходимо настроить его для использования Elasticsearch в качестве поисковой системы по умолчанию. Откройте файл .env Laravel и добавьте следующие параметры конфигурации:
SCOUT_DRIVER=elasticsearch
SCOUT_ELASTICSEARCH_HOSTS=http://localhost:9200
Где SCOUT_DRIVER
определяет поисковую систему, которая Laravel Scout использует, и SCOUT_ELASTICSEARCH_HOSTS
указывает Elasticsearch URL-адрес, к которому будет подключаться Scout.
Шаг 4: Запустите Migration
Затем запустите, migration чтобы создать таблицу с возможностью поиска для моделей, которые вы хотите найти в файлах Elasticsearch. Используйте следующую команду:
php artisan migrate
Шаг 5: Определите модель и назначьте доступное для поиска описание
Наконец, в модели, которую вы хотите найти, добавьте характеристику Searchable
и определите доступное для поиска описание для каждой модели. Например:
use Laravel\Scout\Searchable;
class Product extends Model
{
use Searchable;
public function toSearchableArray()
{
return [
'id' => $this->id,
'name' => $this->name,
'description' => $this->description,
// Add other searchable fields if needed
];
}
}
Шаг 6. Синхронизируйте данные с Elasticsearch
После настройки и определения доступных для поиска моделей запустите команду для синхронизации данных из вашей базы данных с Elasticsearch:
php artisan scout:import "App\Models\Product"
После завершения Elasticsearch он был интегрирован в Laravel, и вы можете начать использовать его функцию поиска в своем приложении.