您好,登錄后才能下訂單哦!
這篇文章將為大家詳細講解有關Laravel中如何利用Scout集成Elasticsearch搜索引擎,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。
準備工作
通過composer安裝依賴包
composer require laravel/scout composer require tamayo/laravel-scout-elastic
基本配置
在config/app.php文件中的providers數組中加入服務提供者
// config/app.php 'providers' => [ // ... Laravel\Scout\ScoutServiceProvider::class, // ... ScoutEngines\Elasticsearch\ElasticsearchProvider::class, ],
使用以下命令生成scout配置文件
php artisan vendor:publish --provider="Laravel\Scout\ScoutServiceProvider"
在config/scout.php中加入elasticsearch的配置
'elasticsearch' => [ 'index' => env('ELASTICSEARCH_INDEX', 'laravel'), 'hosts' => [ env('ELASTICSEARCH_HOST', 'http://localhost:9200'), ], ],
然后我們打開.env文件,加入scout和elasticsearch的配置
# scout配置 SCOUT_DRIVER=elasticsearch SCOUT_PREFIX= # elasticsearch 配置 ELASTICSEARCH_INDEX=esdemo # elasticsearch 地址 ELASTICSEARCH_HOST=http://172.30.6.1:9200
創建索引
創建模型并填充數據
創建模型app/Student.php,為方便后續測試,請先建表和填充數據,可以手動使用sql語句添加數據,也使用laravel自動的數據遷移和填充.
<?php namespace App; use Illuminate\Database\Eloquent\Model; use Laravel\Scout\Searchable; /** * 學生模型 */ class Student extends Model { use Searchable; /** * 索引名稱 * * @return string */ public function searchableAs() { return 'students_index'; } /** * 可搜索的數據索引 * * @return array */ public function toSearchableArray() { $array = $this->toArray(); // Customize array... return $array; } }
把所有現有記錄導入到搜索索引里
php artisan scout:import "App\Student"
是不是導入成功了呢?
php artisan scout:import "App\Student" Imported [App\Student] models up to ID: 500 Imported [App\Student] models up to ID: 1000 Imported [App\Student] models up to ID: 1500 Imported [App\Student] models up to ID: 2000 Imported [App\Student] models up to ID: 2500 Imported [App\Student] models up to ID: 3000 Imported [App\Student] models up to ID: 3500 Imported [App\Student] models up to ID: 4000 Imported [App\Student] models up to ID: 4500 Imported [App\Student] models up to ID: 5000 Imported [App\Student] models up to ID: 5500 Imported [App\Student] models up to ID: 6000 Imported [App\Student] models up to ID: 6500 Imported [App\Student] models up to ID: 7000 Imported [App\Student] models up to ID: 7500 Imported [App\Student] models up to ID: 8000 Imported [App\Student] models up to ID: 8500 Imported [App\Student] models up to ID: 9000 Imported [App\Student] models up to ID: 9500 Imported [App\Student] models up to ID: 10000 All [App\Student] records have been imported.
我們訪問es,http://172.30.6.1:9200/esdemo/students_index/_search
是不是已經有了剛剛導入的students_index索引數據
大功告成
$studens = App\Student::search('成燕')->get(); dd($studens);
關于“Laravel中如何利用Scout集成Elasticsearch搜索引擎”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,使各位可以學到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。