本文不必定寫的所有都對,若是有哪裏寫得很差或者不對,能夠提但請不要噴,不喜勿看繞道走就是了,雖然有可能在一些小知識點上會誤導小白,可是仍是能夠看看基礎的ES操做,對於使用仍是一點幫助的php
這裏不對ES進行介紹,哈哈哈哈哈哈html
PHP中使用ES主要經過官方提供的包 elasticsearch/elasticsearch 進行開發,但這個教程不直接使用這個包,用另一個親身實踐以爲還不錯的包 ruflin/elastica 進行開發。sql
本教程的ES版本爲7.2,已經沒有了type的概念,不必定適用於小於7.2的版本,簡單點說就是,把ES比喻成Mysql數據庫,有type的時候,index就是一個數據庫,type就是數據庫的一個個表,這種狀況下一個項目中通常只有一個index,多個type;沒有type以後,能夠把index理解成一個個表,一個項目變成了多個index。數據庫
通常來講,咱們用ES就是爲了作搜索,作搜索咱們用得更多的實際上是數據庫,因此就涉及到如下這些搜索:模糊匹配,精確匹配,類數據的In查詢,And查詢,Or查詢,複合查詢,Between查詢等等等等....由於ES的查詢語法確定跟Mysql徹底不同,因此咱們要看學習一下,還有相關的基礎搜索相關的知識。api
此處咱們先簡要介紹一下教程的步驟bash
www.elastic.co/guide/en/el…app
elastica.io/composer
直接使用composer安裝ruflin/elasticaelasticsearch
composer install "ruflin/elastica" -vvv
複製代碼
相關的文檔ide
PUT /index名稱
不傳參
複製代碼
代碼實現
// 建立ES客戶端
$config = [
'host' => '127.0.0.1',
'port' => 9200,
];
$client = new Client($config);
// 建立Index
$indexName = 'test';
$index = $client->getIndex($indexName);
// 若是Index不存在則建立
if (!$index->exists()) {
$index->create();
}
// 到這裏就完成了一個最簡單的Index建立,tips:插入數據時,若是Index沒有建立則會自動建立,後續說到數據插入時再講一次
複製代碼
相關的文檔
DELETE /index名稱
不傳參
複製代碼
代碼實現
// 縮略客戶端鏈接代碼
$index = $client->getIndex($indexName);
// 若是Index存在則刪除
if ($index->exists()) {
$index->delete();
}
複製代碼
是否是感受很簡單,哈哈哈哈哈哈