站长图库向大家介绍了laravel使用elaticsearch,laravel步骤等相关知识,希望对您有所帮助
下面给大家介绍在laravel中如何使用elaticsearch(步骤分明),希望对大家有所帮助!
安装相关扩展包
guzzlehttp/guzzle
elasticsearch/elasticsearch
laravel/scout
babenkoivan/scout-elasticsearch-driver
predis/predis 数据量大需要使用队列同步、拉取数据时安装
1、安装 guzzlehttp/guzzle
composer require guzzlehttp/guzzle
在 app/Services 目录下编写 Http 服务类
<?php namespace App\Services;use GuzzleHttp\Client;use GuzzleHttp\Cookie\CookieJar;class HttpService{ protected $client; public function __construct() { $this->client = new Client(['verify' => false, 'timeout' => 0,]); } /** * 发送 get 请求 * @param $url * @param array $aQueryParam * @param string $isDecode * @return mixed * @throws \GuzzleHttp\Exception\GuzzleException */ public function get($url, $aQueryParam = [], $isDecode = true) { $response = $this->client->request('GET', $url, [ 'query' => $aQueryParam ]); if($isDecode){ return \GuzzleHttp\json_decode($response->getbody()->getContents(), true); } return $response->getbody()->getContents(); } /** * 发送 post 请求 * @param $url * @param array $aParam * @param string $type * @param string $isDecode * @return mixed * @throws \GuzzleHttp\Exception\GuzzleException */ public function post($url, $aParam = [], $type = 'form_params', $isDecode = true) { $aOptions = []; // Sending application/x-www-form-urlencoded POST if ($type == 'form_params') { $aOptions['form_params'] = $aParam; } // upload JSON data if ($type == 'json') { $aOptions['json'] = $aParam; } $response = $this->client->request('POST', $url, $aOptions); if($isDecode){ return \GuzzleHttp\json_decode($response->getbody()->getContents(), true); } return $response->getbody()->getContents(); } /** * 发送 put 请求 * @param $url * @param array $aParam * @param string $type * @param string $isDecode * @return mixed * @throws \GuzzleHttp\Exception\GuzzleException */ public function put($url, $aParam = [], $type = 'form_params', $isDecode = true) { $aOptions = []; // Sending application/x-www-form-urlencoded POST if ($type == 'form_params') { $aOptions['form_params'] = $aParam; } // upload JSON data if ($type == 'json') { $aOptions['json'] = $aParam; } $response = $this->client->request('PUT', $url, $aOptions); if($isDecode){ return \GuzzleHttp\json_decode($response->getbody()->getContents(), true); } return $response->getbody()->getContents(); } /** * 保存远程文件到本地 * 跟随第三方服务器url重定向 * @param $url * @return bool|string */ public function getRemoteFile($url) { $jar = new CookieJar(); $aOptions = ['cookies' => $jar]; $response = $this->client->request('GET', $url, $aOptions); return $response->getBody()->getContents(); }}2、安装 elasticsearch/elasticsearch
composer require elasticsearch/elasticsearch
3、安装 laravel/scout
composer require laravel/scout php artisan vendor:publish --provid

