Laravel 配置 elastic 后运行 PHP artisan es:init 报错
[GuzzleHttp\Exception\ClientException]
Client error: `DELETE http://127.0.0.1:9200/_template/tmp` resulted in a `404 Not Found` response:
{"error":{"root_cause":[{"type":"index_template_missing_exception","reason":"index_template [tmp] missing"}],"type":"ind (truncated...)
具体的代码如下
<?php
namespace App\Console\Commands;
use GuzzleHttp\Client;
use Illuminate\Console\Command;
class ESInit extends Command
{
/**
* The name and signature of the console command.
*
* @var string
*/
protected $signature = 'es:init';
/**
* The console command description.
*
* @var string
*/
protected $description = 'init laravel es for my poject of blog';
/**
* Create a new command instance.
*
* @return void
*/
public function __construct()
{
parent::__construct();
}
/**
* Execute the console command.
*
* @return mixed
*/
public function handle()
{
// todo ;
//创建template
$client=new Client();
$url=config('scout.elasticsearch.hosts')[0].'/_template/tmp';
$client->delete($url);
$param=[
'json'=>[
'template'=>config('scout.elasticsearch.index'),
'mapping'=>[
'_default_'=>[
'dynamic_templates'=>[
[
'strings'=>[
'match_mapping_type'=>'string',
'mapping'=>[
'tyoe'=>'text',
'analyzer'=>'ik_smart',
'fields'=>[
'keyword'=>[
'type'=>'keyword'
]
]
]
]
]
]
]
] ,
] ,
] ;
$client->put($url,$param);
$this->info("==========创建模板ok============") ;
//创建index
$url=config('scout.elasticsearch.hosts')[0] .'/'.config('scout.elasticsearch.index');
$client->delete($url);
$param=[
'json'=> [
'settings'=>[
'refresh_interval'=>'5s',
'number_of_shards'=>1,
'number_of_replicas'=>0,
] ,
'mapping'=>[
'_default_'=> [
'_all'=>[
'enabled'=>false
]
]
]
]
] ;
$client->put($url,$param);
$this->info("==========创建INDEX ok============") ;
}
}
推荐文章: