您好,登錄后才能下訂單哦!
這篇文章將為大家詳細(xì)講解有關(guān)Laravel中如何利用Scout集成Elasticsearch搜索引擎,小編覺(jué)得挺實(shí)用的,因此分享給大家做個(gè)參考,希望大家閱讀完這篇文章后可以有所收獲。
準(zhǔn)備工作
通過(guò)composer安裝依賴包
composer require laravel/scout composer require tamayo/laravel-scout-elastic
基本配置
在config/app.php文件中的providers數(shù)組中加入服務(wù)提供者
// 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'), ], ],
然后我們打開(kāi).env文件,加入scout和elasticsearch的配置
# scout配置 SCOUT_DRIVER=elasticsearch SCOUT_PREFIX= # elasticsearch 配置 ELASTICSEARCH_INDEX=esdemo # elasticsearch 地址 ELASTICSEARCH_HOST=http://172.30.6.1:9200
創(chuàng)建索引
創(chuàng)建模型并填充數(shù)據(jù)
創(chuàng)建模型app/Student.php,為方便后續(xù)測(cè)試,請(qǐng)先建表和填充數(shù)據(jù),可以手動(dòng)使用sql語(yǔ)句添加數(shù)據(jù),也使用laravel自動(dòng)的數(shù)據(jù)遷移和填充.
<?php namespace App; use Illuminate\Database\Eloquent\Model; use Laravel\Scout\Searchable; /** * 學(xué)生模型 */ class Student extends Model { use Searchable; /** * 索引名稱 * * @return string */ public function searchableAs() { return 'students_index'; } /** * 可搜索的數(shù)據(jù)索引 * * @return array */ public function toSearchableArray() { $array = $this->toArray(); // Customize array... return $array; } }
把所有現(xiàn)有記錄導(dǎo)入到搜索索引里
php artisan scout:import "App\Student"
是不是導(dǎo)入成功了呢?
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.
我們?cè)L問(wèn)es,http://172.30.6.1:9200/esdemo/students_index/_search
是不是已經(jīng)有了剛剛導(dǎo)入的students_index索引數(shù)據(jù)
大功告成
$studens = App\Student::search('成燕')->get(); dd($studens);
關(guān)于“Laravel中如何利用Scout集成Elasticsearch搜索引擎”這篇文章就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,使各位可以學(xué)到更多知識(shí),如果覺(jué)得文章不錯(cuò),請(qǐng)把它分享出去讓更多的人看到。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。