摘要:安裝地址有兩種模式模式支持映射非模式支持原生使用首先創建或地址端口索引名稱索引名稱然后使用對進行操作搜索新增更新刪除使用首先構建調用中的方法對進行操作其他方法類似創建同步數據到
composer 安裝:composer require ethansmart/es-for-laravel github 地址:https://github.com/roancsu/es-for-laravel
ES for Laravel
Usage
EsBuilder 有兩種模式
ES ORM Client (ORM模式):支持Model映射
ES Client (非ORM模式):支持原生ES
使用 ES ORM Client
首先創建ORM Model
use EthansmartEsBuilderModelEsModel; /** * Class AtPerson * $host ES IP或URL地址 * $port ES 端口 * $index ES 索引名稱 * $type ES 索引 type名稱 * @package EthanEsBuilderModel */ class AtPerson extends EsModel { protected $host = "127.0.0.1"; protected $port = "32800"; protected $index = "accounts"; protected $type = "person"; }
然后使用Model對ES進行CURD操作
搜索
try { $result = AtPerson::build() ->select("user") ->where("user","==","chengluo") ->where("title,desc","like","AI") ->where("create_time","<","2018-10-05") ->get(); } catch (Exception $e) { return ["code"=>-1, "msg"=>$e->getMessage()]; } return $result;
新增
try { $id = 5; $data = [ "id"=>$id, "params"=>[ "user"=>"Ethan Cheng", "title"=>"AI ".str_random(8), "desc"=>"AI ".str_random(12) ] ]; $result = AtPerson::build()->create($data); } catch (Exception $e) { return ["code"=>-1, "msg"=>$e->getMessage()]; } return $result;
更新
try { $id = 5; $data = [ "id"=>$id, "params"=>[ "user"=>"Ethan Cheng", "title"=>"AI ".str_random(8), "desc"=>"AI ".str_random(12) ] ]; $result = AtPerson::build()->update($data); } catch (Exception $e) { return ["code"=>-1, "msg"=>$e->getMessage()]; } return $result;
刪除
try { $id = 5; $result = AtPerson::build()->delete($id); } catch (Exception $e) { throw $e; } return $result;
使用 ES Client
首先構建 Client
private $client ; public function __construct() { $host = "127.0.0.1"; $port = "32800"; $this->client = EsClientBuilder::create() ->setHosts($host) ->setPort($port) ->build(); }
調用Client中的方法對ES進行CURD操作
$data = [ "index"=>"accounts", "type"=>"person", "body"=>[ "query"=>[ "bool"=>[ "must"=>[ "match"=>[ "user"=>"ethan" ] ] ] ] ], ]; try { $result = $this->client->search($data); } catch (Exception $e) { return ["code"=>-1, "msg"=>$e->getMessage()]; } return $result;
其他方法類似
創建Laravel Job 同步數據到 ES
use EthansmartEsBuilderBuilderEsClientBuilder; class EsService { private $client ; public function __construct() { $host = "127.0.0.1"; $port = "32800"; $this->client = EsClientBuilder::create() ->setHosts($host) ->setPort($port) ->build(); } public function create($id) { $data = [ "index"=>"accounts", "type"=>"person", "id"=>$id, "body"=>[ "user"=>str_random(6), "title"=>str_random(12), "desc"=>str_random(16), ] ]; try { $result = $this->client->create($data); } catch (Exception $e) { return ["code"=>-1, "msg"=>$e->getMessage()]; } return $result; } }
Q:
在使用 composer 安裝過程中會出現 如下異常:
[InvalidArgumentException]
Could not find a version of package ethansmart/es-for-laravel matching your minimum-stability (stable). Require it with an explicit version constraint allowing its desired stability.
解決方法:
在項目composer.json文件中加入:
"repositories": [ { "packagist.org": false }, { "type": "composer", "url": "https://packagist.org" } ],
將國內的composer鏡像換成 packagist.org 就可以了。
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/29479.html
摘要:完全沒有基礎的人基本上很難安裝并使用成功。目錄用于存放的依賴包。開啟訪問即可看到有的字樣出現,代表安裝配置成功。 最近開始開坑,玩php,而且laravel最近很熱門,所以就這樣了。小白php直接接觸框架真的不容易,以前python接觸的django框架看官網文檔覺得寫得勉強吧,不是太好看,直到看到laravel的文檔才知道什么叫變態。完全沒有基礎的人基本上很難安裝并使用成功。而且即使...
摘要:但也因為應有盡有使得框架的性能比其他高性能框架低了些,為此給了幾個解決方案路由緩存經有關部門研究,路由緩存可有效加快訪問速度以上。有朋友說框架最重要的東西是路由,我倒認為最重要的是框架中異于其他框架且能解決痛點的東西,如的。 showImg(https://segmentfault.com/img/remote/1460000006767764); 在程序界的遠古時期,大神們手持鍵盤敲...
摘要:流程一新項目流程創建,并添加依賴到的擴展包運行,安裝擴展包并生成提交到代碼版本控制器中,如流程二項目協作者安裝現有項目克隆項目后,根目錄下直接運行從中安裝指定版本的擴展包以及其依賴此流程適用于生產環境代碼的部署。 本文經授權轉自 PHPHub 社區 問題說明 我們經常要往現有的項目中添加擴展包,有時候因為文檔的錯誤引導,如下圖來自 這個文檔 的: showImg(https://dn-...
摘要:原文發表在我的個人網站系列入門教程一最適合中國人的教程本教程示例代碼見大家在任何地方卡住,最快捷的解決方式就是去看我的示例代碼。在此我推薦一個全量中國鏡像。 原文發表在我的個人網站:Laravel 5 系列入門教程(一)【最適合中國人的 Laravel 教程】 本教程示例代碼見:https://github.com/johnlui/Learn-Laravel-5 大...
閱讀 3564·2023-04-26 02:05
閱讀 2003·2021-11-19 11:30
閱讀 4202·2021-09-30 09:59
閱讀 3175·2021-09-10 10:51
閱讀 2605·2021-09-01 10:30
閱讀 1470·2021-08-11 11:20
閱讀 2615·2019-08-30 15:54
閱讀 563·2019-08-30 10:49