# laravel-scout-elasticsearch **Repository Path**: kinchuam/laravel-scout-elasticsearch ## Basic Information - **Project Name**: laravel-scout-elasticsearch - **Description**: laravel-scout-elasticsearch - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2023-07-17 - **Last Updated**: 2023-07-18 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # laravel-scout-elasticsearch Elasticsearch Driver for Laravel Scout --- ### Installation You can install the package via composer: ```shell composer require kinch/laravel-scout-elasticsearch:"^2.0" ``` ### Setting up Elasticsearch configuration vendor:publish ```shell php artisan vendor:publish --provider="Kinch\LaravelScoutElasticsearch\LaravelScoutElasticsearchServiceProvider" ``` After you've published the Laravel Scout package configuration, you need to set your driver to elasticsearch and add its configuration: ```php // config/elasticsearch.php env('ELASTICSEARCH_HOST'), 'user' => env('ELASTICSEARCH_USER'), 'password' => env('ELASTICSEARCH_PASSWORD'), 'cert' => storage_path(env('ELASTICSEARCH_CERT')), 'cloud_id' => env('ELASTICSEARCH_CLOUD_ID'), 'api_key' => env('ELASTICSEARCH_API_KEY'), 'queue' => [ 'timeout' => env('SCOUT_QUEUE_TIMEOUT'), ], // index_ is followed by the index name 'index_article' => [ 'settings' => [ 'number_of_shards' => 5, 'number_of_replicas' => 1, ], 'mappings' => [ "properties" => [ "title" => [ "type" => "text", "analyzer" => "ik_max_word", "search_analyzer" => "ik_smart", "fields" => ["keyword" => ["type" => "keyword", "ignore_above" => 256]], ], ], ], ], ]; ``` ### Usage Set env variables ```angular2html SCOUT_DRIVER=Kinch\LaravelScoutElasticsearch\Engines\ElasticsearchEngine ELASTICSEARCH_HOST=host:port ELASTICSEARCH_USER=elastic ELASTICSEARCH_PASSWORD= ELASTICSEARCH_CERT=certs/http_ca.crt ``` Set ELASTICSEARCH_HOST env variable ```angular2html ELASTICSEARCH_HOST=host:port,host:port ``` ##### console ```shell // create index php artisan scout:index article // delete index php artisan scout:delete-index article // batch update data to es php artisan scout:import "App\Models\Article" ``` ##### search example ```php use App\Models\Article; // $condition = "test"; // ... or // $condition = [ // "title" => "test", // "abstract" => "test" // ]; // ... or $keyword = "test"; $source = [1,2]; $startTime = '2023-05-01T00:00:00.000+0800'; $endTime = '2023-05-20T00:00:00.000+0800'; $condition = [ "_customize_body" => 1, "bool" => [ "should" => [ [ "match" => [ "title" => ["query" => $keyword, 'boost' => 5] ] ], [ "match" => [ "abstract" => ["query" => $keyword, 'boost' => 3] ] ], ], "must" => [ [ "terms" => ["source" => $source] ], [ "range" => [ "created_at" => [ 'gte' => $startTime, 'lte' => $endTime ] ] ] ] ], ]; $data = Article::search($condition) ->orderBy('_score', 'desc') ->paginate(10); ``` More please see [Laravel Scout official documentation](https://laravel.com/docs/10.x/scout). ### License The MIT License (MIT).