php + Elasticsearch 使用

window環(huán)境安裝?

安裝es 官方下載速度太慢了 我提供的是7.31的版本 7.3的版本內(nèi)置了java解釋器 不需要在安裝

window 7.31 安裝

鏈接: https://pan.baidu.com/s/1CM-4D4oSxNpPXuvZveLPdQ? 提取碼: 5k8y

linux es 7.31安裝 下載解壓就可以了 注意的是es不能使用root賬號運行

鏈接:https://pan.baidu.com/s/13AkN_I8b7QZdyzBEUp_YuA?提取碼:oysi

中文分詞

https://github.com/medcl/elasticsearch-analysis-ik/releases

??kibana可視化工具下載地址

https://www.elastic.co/cn/downloads/kibana



使用 composer 內(nèi)置管理器??

composer require 'elasticsearch/elasticsearch'

然后在家composer的默認自動加載類就好了?

Elasticsearch 詳細講解??https://www.cnblogs.com/codeAB/p/10283304.html

es官方已經(jīng)禁止了type默認 如果要使用可以在創(chuàng)建索引的時間添加?? 'include_type_name' => true 方法?

8.0以后默認都是type _doc 已經(jīng)廢除了 type自定義方式

es中文社區(qū)?https://elasticsearch.cn/article/601

php 代碼分享 作者版本 7.31?

use Elasticsearch\ClientBuilder;

class ElasticsearchService

{

? ? protected static $client = null;

? ? public function __construct()

{

? ? ? ? if (!self::$client) {

? ? ? ? ? ? self::$client = ClientBuilder::create()->setHosts(['127.0.0.1'])->build();

}

}

? ? public function indexAdd($index_name, $number_of_shards = 2, $number_of_replicas = 0)

{

? ? ? ? $params = [

? ? ? ? ? ? 'index' => $index_name, #index的名字不能是大寫和下劃線開頭

? ? ? ? ? ? 'body' => [

? ? ? ? ? ? ? ? 'settings' => [

? ? ? ? ? ? ? ? ? ? 'number_of_shards' => $number_of_shards,

? ? ? ? ? ? ? ? ? ? 'number_of_replicas' => $number_of_replicas,

]

]

];

? ? ? ? return self::$client->indices()->create($params);

}

? ? /**

? ? * @param $index_name

? ? * @param $type_name

? ? * @param array $field

? ? * @return array

* [

* 'id' => [

* 'type' => 'integer'

* ],

* 'first_name' => [

* 'type' => 'text',

* 'analyzer' => 'ik_max_word'

* ],

* 'last_name' => [

* 'type' => 'text',

* 'analyzer' => 'ik_max_word'

* ],

* 'age' => [

* 'type' => 'integer'

* ]

* ]

*/

? ? public function typeAdd($index_name, $field = [],$type_name = '_doc')

{

? ? ? ? $params = [

? ? ? ? ? ? 'index' => $index_name,

? ? ? ? ? ? 'type' => $type_name,

? ? ? ? ? ? 'body' => [

? ? ? ? ? ? ? ? 'mytype' => [

? ? ? ? ? ? ? ? ? ? '_source' => [

? ? ? ? ? ? ? ? ? ? ? ? 'enabled' => true

? ? ? ? ? ? ? ? ? ? ],

? ? ? ? ? ? ? ? ? ? 'properties' => $field,

//? ? ? ? ? ? ? ? ? ? 'include_type_name' => true,

? ? ? ? ? ? ? ? ]

]

];

? ? ? ? return self::$client->indices()->putMapping($params);

}

? ? /**

? ? * 創(chuàng)建一個數(shù)據(jù)? 'body' => [

? ? * 'first_name' => '張',

? ? * 'last_name' => '三',

* 'age' => 35

* ]

*/

? ? public function indexTypeAddRow($index_name, $body,$type_name ='_doc',$id = null)

{

? ? ? ? $params = [

? ? ? ? ? ? 'index' => $index_name,

? ? ? ? ? ? 'type' => $type_name,

? ? ? ? ? ? 'id' => $id, #可以手動指定id,也可以不指定隨機生成

? ? ? ? ? ? 'body' => $body,

//? ? ? ? ? ? 'include_type_name' => true,

? ? ? ? ];

? ? ? ? $params = array_filter($params);

? ? ? ? return self::$client->index($params);

}

? ? public function searchAll()

{

? ? ? ? return self::$client->search();

}

? ? public function search($index_name, $param,$type_name = '_doc')

{

? ? ? ? $params['index'] = $index_name;

? ? ? ? $params['type'] = $type_name;

? ? ? ? $params['body'] = $param;

? ? ? ? return self::$client->search($params);

}

? ? public function get($index_name, $id,$type_name = '_doc')

{

? ? ? ? $params = [

? ? ? ? ? ? 'index' => $index_name,

? ? ? ? ? ? 'type' => $type_name,

? ? ? ? ? ? 'id' => $id

? ? ? ? ];

? ? ? ? return self::$client->get($params);

}

? ? public function del($index_name, $type_name, $id)

{

? ? ? ? $params = [

? ? ? ? ? ? 'index' => $index_name,

? ? ? ? ? ? 'type' => $type_name,

? ? ? ? ? ? 'id' => $id

? ? ? ? ];

? ? ? ? return self::$client->delete($params);

}

? ? /**

? ? * 一次獲取多個文檔

? ? * @param $ids

? ? * @return array

*/

? ? public function gets($index_name, $type_name, array $id)

{

? ? ? ? $params = [

? ? ? ? ? ? 'index' => $index_name,

? ? ? ? ? ? 'type' => $type_name,

? ? ? ? ? ? 'id' => $id

? ? ? ? ];

? ? ? ? return self::$client->mget($params);

}

? ? /**

? ? * @param $index_name

? ? * @param $type_name

? ? * @param $body 'doc' => [

? ? * 'first_name' => '張',

? ? * 'last_name' => '三',

* 'age' => 99

* ]

? ? * @param $id

? ? * @return mixed

*/

? ? public function update($index_name, $type_name, $body, $id)

{

? ? ? ? $params = [

? ? ? ? ? ? 'index' => $index_name,

? ? ? ? ? ? 'type' => $type_name,

? ? ? ? ? ? 'id' => $id,

? ? ? ? ? ? 'body' => [

? ? ? ? ? ? ? ? $body

? ? ? ? ? ? ]

];

? ? ? ? return self::$client->update($params);

}

? ? /**

? ? * @return array

*/

? ? public function esStatus()

{

? ? ? ? return self::$client->indices()->stats();

}

? ? /**

? ? * 檢查Index 是否存在

? ? * @return bool

*/

? ? public function checkIndexExists($index_name)

{

? ? ? ? $params = [

? ? ? ? ? ? 'index' => $index_name

? ? ? ? ];

? ? ? ? return self::$client->indices()->exists($params);

}

? ? public function delIndex($index_name)

{

? ? ? ? $params = [

? ? ? ? ? ? 'index' => $index_name

? ? ? ? ];

? ? ? ? if ($this->checkIndexExists($index_name)) {

? ? ? ? ? ? return self::$client->indices()->delete($params);

}

}

? ? public function delAllIndex()

{

? ? ? ? $indexList = $this->esStatus()['indices'];

? ? ? ? foreach ($indexList as $item => $index) {

? ? ? ? ? ? $this->delIndex($item);

}

? ? ? ? return true;

}

}

刪除文檔

es只有刪除索引才會釋放空間

https://elastic.blog.csdn.net/article/details/80038930

最后編輯于
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末纤勒,一起剝皮案震驚了整個濱河市搁凸,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌帘腹,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,265評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件莲蜘,死亡現(xiàn)場離奇詭異熟呛,居然都是意外死亡静檬,警方通過查閱死者的電腦和手機炭懊,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,078評論 2 385
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來拂檩,“玉大人侮腹,你說我怎么就攤上這事〉纠” “怎么了父阻?”我有些...
    開封第一講書人閱讀 156,852評論 0 347
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經(jīng)常有香客問我加矛,道長履婉,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,408評論 1 283
  • 正文 為了忘掉前任斟览,我火速辦了婚禮毁腿,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘趣惠。我一直安慰自己狸棍,他們只是感情好身害,可當我...
    茶點故事閱讀 65,445評論 5 384
  • 文/花漫 我一把揭開白布味悄。 她就那樣靜靜地躺著,像睡著了一般塌鸯。 火紅的嫁衣襯著肌膚如雪侍瑟。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,772評論 1 290
  • 那天丙猬,我揣著相機與錄音涨颜,去河邊找鬼。 笑死茧球,一個胖子當著我的面吹牛庭瑰,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播抢埋,決...
    沈念sama閱讀 38,921評論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼弹灭,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了揪垄?” 一聲冷哼從身側(cè)響起穷吮,我...
    開封第一講書人閱讀 37,688評論 0 266
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎饥努,沒想到半個月后捡鱼,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,130評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡酷愧,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,467評論 2 325
  • 正文 我和宋清朗相戀三年驾诈,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片溶浴。...
    茶點故事閱讀 38,617評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡乍迄,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出戳葵,到底是詐尸還是另有隱情就乓,我是刑警寧澤,帶...
    沈念sama閱讀 34,276評論 4 329
  • 正文 年R本政府宣布,位于F島的核電站生蚁,受9級特大地震影響噩翠,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜邦投,卻給世界環(huán)境...
    茶點故事閱讀 39,882評論 3 312
  • 文/蒙蒙 一伤锚、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧志衣,春花似錦屯援、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,740評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至绿店,卻和暖如春吉懊,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背假勿。 一陣腳步聲響...
    開封第一講書人閱讀 31,967評論 1 265
  • 我被黑心中介騙來泰國打工借嗽, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人转培。 一個月前我還...
    沈念sama閱讀 46,315評論 2 360
  • 正文 我出身青樓恶导,卻偏偏與公主長得像,于是被迫代替她去往敵國和親浸须。 傳聞我的和親對象是個殘疾皇子惨寿,可洞房花燭夜當晚...
    茶點故事閱讀 43,486評論 2 348