<?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 es of laravel for post';
/**
* Create a new command instance.
*
* @return void
*/
public function __construct()
{
parent::__construct();
}
/**
* Execute the console command.
*
* @return mixed
*/
public function handle()
{
// 创建模版
$client = new Client();
$url = config('scout.elasticsearch.hosts')[0] . '/_template/tmp';
try{
$client->delete($url);
}catch (\Exception $e){
$this->info("===delete template error\n" . $e->getMessage());
die;
}
$param = [
'json' => [
'template' => config('scout.elasticsearch.index'),
'mapping' => [
'_default_' => [
'dynamic_template' =>[
[
'string' => [
'match_mppping_type' => 'string',
'mapping' => [
'type' => 'text',
'analyzer' => 'ik_smart',
'fields' => [
'keyword' => [
'type' => 'keyword'
]
]
]
]
]
]
]
]
]
];
$client->put($url,$param);
$this->info('----------创建模板成功-------------');
// 创建index
$url = config('scout.elasticsearch.hosts')[0] . '/'.config('scout.elasticsearch.index');
// $client->delete($url);
$param = [
'json' => [
'setting' => [
'refresh_interval' => '5s',
'number_of_shards' => 1,
'number_of_replicas' => 0,
],
'mappings' => [
'_default_' => [
'_all_' => [
'enable' =>false
]
]
]
]
];
$client->put($url,$param);
$this->info('----------创建索引成功-------------');
}
}
es版本为:6.3.0
java版本:
输入命令行后报错:
In RequestException.php line 113:
Server error: `PUT http://127.0.0.1:9200/_template/tmp` resulted in a `500
Internal Server Error` response:
{"error":{"root_cause":[{"type":"access_control_exception","reason":"access
denied (\"java.io.FilePermission\" \"D:\\Pro (truncated...)
Laravel最新特性结合Mysql异步消息队列、ElasticSearch搜索引擎、Debugbar调试利器开发简书
了解课程