LaravelでScoutを利用したElasticsearch検索エンジンの統合
3648 ワード
前に書く
Elasticsearch(以下esと略称する)は、リアルタイムの分散検索および分析エンジンです.
検索エンジンでは、Elasticsearchだけでなく、別のAlgolia、sphinx、Solrなどがありますが、ここでは評価や比較はせず、laravelでElasticsearchをどのように使うかを紹介します.
優先的にはElasticsearchをインストールする必要があります.参照してください.https://www.tech1024.cn/origi... .
本稿はlaravel 5に基づく.5、その他のバージョンは大同小異です.
準備作業
composerによる依存パッケージのインストール
基本構成
config/app.phpファイルのproviders配列にサービスプロバイダを追加
次のコマンドを使用してscoutプロファイルを生成します.
ここではphpにelasticsearchを追加する構成
開いてみましょうEnvファイル、scoutとelasticsearchの構成を追加
索引の作成
モデルの作成とデータの移入
モデルapp/studentを作成します.php、後続のテストを容易にするために、まず表を作成してデータを埋めてください.sql文を手動で使用してデータを追加したり、laravelを使用して自動的にデータの移行と埋め込みをしたりすることができます.参考にしてください.https://www.tech1024.cn/origi...
すべての既存レコードを検索インデックスにインポート
導入に成功したのではないでしょうか.
私たちはesにアクセスし、http://172.30.6.1:9200/esdemo/students_index/_search
導入したばかりのstudentsがあるのではないでしょうか.indexインデックスデータ
大功を成し遂げる
百万個のデータを入力してみて、検索速度は、直接データベースを検索するよりもずっと速いのではないでしょうか.
詳細については、公式ドキュメントを参照してください.https://www.elastic.co/guide/...
原文:http://www.tech1024.cn/origin...
Elasticsearch(以下esと略称する)は、リアルタイムの分散検索および分析エンジンです.
検索エンジンでは、Elasticsearchだけでなく、別のAlgolia、sphinx、Solrなどがありますが、ここでは評価や比較はせず、laravelでElasticsearchをどのように使うかを紹介します.
優先的にはElasticsearchをインストールする必要があります.参照してください.https://www.tech1024.cn/origi... .
本稿はlaravel 5に基づく.5、その他のバージョンは大同小異です.
準備作業
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"
ここでは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を使用して自動的にデータの移行と埋め込みをしたりすることができます.参考にしてください.https://www.tech1024.cn/origi...
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);
百万個のデータを入力してみて、検索速度は、直接データベースを検索するよりもずっと速いのではないでしょうか.
詳細については、公式ドキュメントを参照してください.https://www.elastic.co/guide/...
原文:http://www.tech1024.cn/origin...