7 changed files with 747 additions and 79 deletions
-
45app/Console/Commands/EsTest.php
-
48app/Models/LanzuGoods.php
-
2composer.json
-
601composer.lock
-
1config/app.php
-
23config/elasticsearch.php
-
106config/scout.php
@ -0,0 +1,45 @@ |
|||||
|
<?php |
||||
|
|
||||
|
namespace App\Console\Commands; |
||||
|
|
||||
|
use Illuminate\Console\Command; |
||||
|
use App\Models\LanzuGoods; |
||||
|
|
||||
|
class EsTest extends Command |
||||
|
{ |
||||
|
/** |
||||
|
* The name and signature of the console command. |
||||
|
* |
||||
|
* @var string |
||||
|
*/ |
||||
|
protected $signature = 'command:EsTest'; |
||||
|
|
||||
|
/** |
||||
|
* The console command description. |
||||
|
* |
||||
|
* @var string |
||||
|
*/ |
||||
|
protected $description = 'Command 测试Es搜索'; |
||||
|
|
||||
|
/** |
||||
|
* Create a new command instance. |
||||
|
* |
||||
|
* @return void |
||||
|
*/ |
||||
|
public function __construct() |
||||
|
{ |
||||
|
parent::__construct(); |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* Execute the console command. |
||||
|
* |
||||
|
* @return int |
||||
|
*/ |
||||
|
public function handle() |
||||
|
{ |
||||
|
$gds = LanzuGoods::search('火龙果')->get(); |
||||
|
dd($gds); |
||||
|
return 0; |
||||
|
} |
||||
|
} |
||||
@ -0,0 +1,48 @@ |
|||||
|
<?php |
||||
|
|
||||
|
namespace App\Models; |
||||
|
|
||||
|
use Illuminate\Database\Eloquent\Model; |
||||
|
use Laravel\Scout\Searchable; |
||||
|
|
||||
|
class LanzuGoods extends Model |
||||
|
{ |
||||
|
use Searchable; |
||||
|
|
||||
|
protected $table = 'lanzu_goods'; |
||||
|
protected $dateFormat = 'U'; |
||||
|
|
||||
|
|
||||
|
public function searchableAs() |
||||
|
{ |
||||
|
return 'lanzu-goods-test'; |
||||
|
} |
||||
|
|
||||
|
public function toSearchableArray() |
||||
|
{ |
||||
|
return [ |
||||
|
'name' => $this->name, |
||||
|
'market_id' => $this->market_id, |
||||
|
'store_id' => $this->store_id, |
||||
|
]; |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* 指定 搜索索引中存储的唯一ID |
||||
|
* @return mixed |
||||
|
*/ |
||||
|
public function getScoutKey() |
||||
|
{ |
||||
|
return $this->id; |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* 指定 搜索索引中存储的唯一ID的键名 |
||||
|
* @return string |
||||
|
*/ |
||||
|
public function getScoutKeyName() |
||||
|
{ |
||||
|
return 'id'; |
||||
|
} |
||||
|
|
||||
|
} |
||||
@ -0,0 +1,23 @@ |
|||||
|
<?php |
||||
|
|
||||
|
return [ |
||||
|
'indices' => [ |
||||
|
'mappings' => [ |
||||
|
'lanzu-goods-test' => [ |
||||
|
"properties"=> [ |
||||
|
"name"=> [ |
||||
|
"type"=> "text", |
||||
|
"analyzer"=> "ik_max_word", |
||||
|
"search_analyzer"=> "ik_smart" |
||||
|
], |
||||
|
'store_id'=>[ |
||||
|
"type"=> "integer", |
||||
|
], |
||||
|
'market_id'=>[ |
||||
|
"type"=> "integer", |
||||
|
] |
||||
|
] |
||||
|
] |
||||
|
] |
||||
|
], |
||||
|
]; |
||||
@ -0,0 +1,106 @@ |
|||||
|
<?php |
||||
|
|
||||
|
return [ |
||||
|
|
||||
|
/* |
||||
|
|-------------------------------------------------------------------------- |
||||
|
| Default Search Engine |
||||
|
|-------------------------------------------------------------------------- |
||||
|
| |
||||
|
| This option controls the default search connection that gets used while |
||||
|
| using Laravel Scout. This connection is used when syncing all models |
||||
|
| to the search service. You should adjust this based on your needs. |
||||
|
| |
||||
|
| Supported: "algolia", "null" |
||||
|
| |
||||
|
*/ |
||||
|
|
||||
|
'driver' => env('SCOUT_DRIVER', 'Matchish\ScoutElasticSearch\Engines\ElasticSearchEngine'), |
||||
|
|
||||
|
/* |
||||
|
|-------------------------------------------------------------------------- |
||||
|
| Index Prefix |
||||
|
|-------------------------------------------------------------------------- |
||||
|
| |
||||
|
| Here you may specify a prefix that will be applied to all search index |
||||
|
| names used by Scout. This prefix may be useful if you have multiple |
||||
|
| "tenants" or applications sharing the same search infrastructure. |
||||
|
| |
||||
|
*/ |
||||
|
|
||||
|
'prefix' => env('SCOUT_PREFIX', ''), |
||||
|
|
||||
|
/* |
||||
|
|-------------------------------------------------------------------------- |
||||
|
| Queue Data Syncing |
||||
|
|-------------------------------------------------------------------------- |
||||
|
| |
||||
|
| This option allows you to control if the operations that sync your data |
||||
|
| with your search engines are queued. When this is set to "true" then |
||||
|
| all automatic data syncing will get queued for better performance. |
||||
|
| |
||||
|
*/ |
||||
|
|
||||
|
'queue' => env('SCOUT_QUEUE', false), |
||||
|
|
||||
|
/* |
||||
|
|-------------------------------------------------------------------------- |
||||
|
| Chunk Sizes |
||||
|
|-------------------------------------------------------------------------- |
||||
|
| |
||||
|
| These options allow you to control the maximum chunk size when you are |
||||
|
| mass importing data into the search engine. This allows you to fine |
||||
|
| tune each of these chunk sizes based on the power of the servers. |
||||
|
| |
||||
|
*/ |
||||
|
|
||||
|
'chunk' => [ |
||||
|
'searchable' => 500, |
||||
|
'unsearchable' => 500, |
||||
|
], |
||||
|
|
||||
|
/* |
||||
|
|-------------------------------------------------------------------------- |
||||
|
| Soft Deletes |
||||
|
|-------------------------------------------------------------------------- |
||||
|
| |
||||
|
| This option allows to control whether to keep soft deleted records in |
||||
|
| the search indexes. Maintaining soft deleted records can be useful |
||||
|
| if your application still needs to search for the records later. |
||||
|
| |
||||
|
*/ |
||||
|
|
||||
|
'soft_delete' => false, |
||||
|
|
||||
|
/* |
||||
|
|-------------------------------------------------------------------------- |
||||
|
| Identify User |
||||
|
|-------------------------------------------------------------------------- |
||||
|
| |
||||
|
| This option allows you to control whether to notify the search engine |
||||
|
| of the user performing the search. This is sometimes useful if the |
||||
|
| engine supports any analytics based on this application's users. |
||||
|
| |
||||
|
| Supported engines: "algolia" |
||||
|
| |
||||
|
*/ |
||||
|
|
||||
|
'identify' => env('SCOUT_IDENTIFY', false), |
||||
|
|
||||
|
/* |
||||
|
|-------------------------------------------------------------------------- |
||||
|
| Algolia Configuration |
||||
|
|-------------------------------------------------------------------------- |
||||
|
| |
||||
|
| Here you may configure your Algolia settings. Algolia is a cloud hosted |
||||
|
| search engine which works great with Scout out of the box. Just plug |
||||
|
| in your application ID and admin API key to get started searching. |
||||
|
| |
||||
|
*/ |
||||
|
|
||||
|
'algolia' => [ |
||||
|
'id' => env('ALGOLIA_APP_ID', ''), |
||||
|
'secret' => env('ALGOLIA_SECRET', ''), |
||||
|
], |
||||
|
|
||||
|
]; |
||||
Write
Preview
Loading…
Cancel
Save
Reference in new issue