日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > php >内容正文

php

elasticsearch和php,快速开始 | Elasticsearch-PHP | Elastic

發布時間:2023/12/2 php 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 elasticsearch和php,快速开始 | Elasticsearch-PHP | Elastic 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

快速開始edit

這一節會概述一下客戶端以及客戶端的一些主要方法的使用規則。

在 composer.json 文件中引入 elasticsearch-php:

{

"require": {

"elasticsearch/elasticsearch": "~6.0"

}

}

用 composer 安裝客戶端:

curl -s http://getcomposer.org/installer | php

php composer.phar install --no-dev

在項目中引入自動加載文件(如果還沒引入),并且實例化一個客戶端:

require 'vendor/autoload.php';

use Elasticsearch\ClientBuilder;

$client = ClientBuilder::create()->build();

索引一個文檔edit

在 elasticsearch-php 中,幾乎一切操作都是用關聯數組來配置。REST 路徑(endpoint)、文檔和可選參數都是用關聯數組來配置。

為了索引一個文檔,我們要指定4部分信息:index,type,id 和一個 body。構建一個鍵值對的關聯數組就可以完成上面的內容。body 的鍵值對格式與文檔的數據保持一致性。(譯者注:如 ["testField" ? "abc"] 在文檔中則為 {"testField" : "abc"}):

$params = [

'index' => 'my_index',

'type' => 'my_type',

'id' => 'my_id',

'body' => ['testField' => 'abc']

];

$response = $client->index($params);

print_r($response);

收到的響應數據表明,你指定的索引中已經創建好了文檔。響應數據是一個關聯數組,里面的內容是 Elasticsearch 返回的decoded JSON 數據:

Array

(

[_index] => my_index

[_type] => my_type

[_id] => my_id

[_version] => 1

[result] => created

[_shards] => Array

(

[total] => 2

[successful] => 1

[failed] => 0

)

[_seq_no] => 0

[_primary_term] => 1

)

獲取一個文檔edit

現在獲取剛才索引的文檔:

$params = [

'index' => 'my_index',

'type' => 'my_type',

'id' => 'my_id'

];

$response = $client->get($params);

print_r($response);

響應數據包含一些元數據(如 index,type 等)和 _source 屬性,

這是你發送給 Elasticsearch 的原始文檔數據。

Array

(

[_index] => my_index

[_type] => my_type

[_id] => my_id

[_version] => 1

[found] => 1

[_source] => Array

(

[testField] => abc

)

)

搜索一個文檔edit

搜索是 elasticsearch 的一大特色,所以我們試一下執行一個搜索。我們準備用 Match 查詢來作為示范:

$params = [

'index' => 'my_index',

'type' => 'my_type',

'body' => [

'query' => [

'match' => [

'testField' => 'abc'

]

]

]

];

$response = $client->search($params);

print_r($response);

這個響應數據與前面例子的響應數據有所不同。這里有一些元數據(如 took, timed_out 等)和一個 hits 的數組,這代表了你的搜索結果。而 hits 內部也有一個 hits 數組,內部的 hits 包含特定的搜索結果:

Array

(

[took] => 16

[timed_out] =>

[_shards] => Array

(

[total] => 5

[successful] => 5

[skipped] => 0

[failed] => 0

)

[hits] => Array

(

[total] => 1

[max_score] => 0.2876821

[hits] => Array

(

[0] => Array

(

[_index] => my_index

[_type] => my_type

[_id] => my_id

[_score] => 0.2876821

[_source] => Array

(

[testField] => abc

)

)

)

)

)

刪除一個文檔edit

好了,現在我們看一下如何把之前添加的文檔刪除掉:

$params = [

'index' => 'my_index',

'type' => 'my_type',

'id' => 'my_id'

];

$response = $client->delete($params);

print_r($response);

你會注意到刪除文檔的語法與獲取文檔的語法是一樣的。唯一不同的是 delete 方法替代了 get 方法。下面響應數據代表文檔已被刪除:

Array

(

[_index] => my_index

[_type] => my_type

[_id] => my_id

[_version] => 2

[result] => deleted

[_shards] => Array

(

[total] => 2

[successful] => 1

[failed] => 0

)

[_seq_no] => 1

[_primary_term] => 1

)

刪除一個索引edit

由于 elasticsearch 的動態特性,我們創建的第一個文檔會自動創建一個索引,同時也會把 settings 里面的參數設定為默認參數。由于我們在后面要指定特定的 settings,所以現在要刪除掉這個索引:

$deleteParams = [

'index' => 'my_index'

];

$response = $client->indices()->delete($deleteParams);

print_r($response);

響應數據是:

Array

(

[acknowledged] => 1

)

創建一個索引edit

由于數據已被清空,我們可以重新開始了,現在要添加一個索引,同時要進行自定義 settings:

$params = [

'index' => 'my_index',

'body' => [

'settings' => [

'number_of_shards' => 2,

'number_of_replicas' => 0

]

]

];

$response = $client->indices()->create($params);

print_r($response);

Elasticsearch會創建一個索引,并配置你指定的參數值,然后返回一個消息確認:

Array

(

[acknowledged] => 1

[shards_acknowledged] => 1

[index] => my_index

)

本節結語edit

這里只是概述了一下客戶端以及它的語法。如果你很熟悉 elasticsearch,你會注意到這些方法的命名跟 REST 路徑(endpoint)是一樣的。

你也注意到了客戶端的參數配置從某種程度上講也是方便你的IDE易于搜索。$client 對象下的所有核心方法(索引,搜索,獲取等)都是可用的。索引管理和集群管理分別在 $client->indices() 和 $client->cluster() 中。

請查詢文檔的其余內容以便知道整個客戶端的運作機制。

總結

以上是生活随笔為你收集整理的elasticsearch和php,快速开始 | Elasticsearch-PHP | Elastic的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 久久国产欧美日韩精品 | 久久久久高潮 | 久久久久久激情 | 哈利波特3在线观看免费版英文版 | 国产理伦 | 久久久精品中文字幕麻豆发布 | 日韩电影在线观看一区二区 | 强伦轩人妻一区二区电影 | 免费看美女隐私网站 | 激情 亚洲 | 久久蜜桃精品 | 欧美大白屁股 | 麻豆影视在线 | 在线观看成人 | 五月婷婷丁香六月 | 日本一区二区三区精品 | 小蝌蚪视频色 | 9999av| 日韩av电影中文字幕 | 91成人在线免费视频 | 原创真实夫妻啪啪av | 亚洲麻豆一区二区三区 | 久伊人网 | 7799精品视频天天看 | 国产在线精品一区二区 | 国产裸体舞一区二区三区 | 亚洲av成人无码一二三在线观看 | 国产成人超碰人人澡人人澡 | 欧美第一视频 | 亚洲视频手机在线观看 | 网爆门在线 | 色视频免费| 一级片视频免费 | 亚洲dvd | 超碰xxx| 天天操天天碰 | 鲁鲁狠狠狠7777一区二区 | 香蕉传媒 | 俄罗斯毛片基地 | 黄色特级大片 | 成人欧美一区二区三区黑人动态图 | 日本va欧美va欧美va精品 | 午夜亚洲av永久无码精品 | 亚洲综合欧美日韩 | 99热最新在线| 香蕉久久夜色 | 亚洲中文字幕视频一区 | 久久精品免费电影 | 91国偷自产一区二区三区观看 | 四虎影院在线免费播放 | 尤物精品在线观看 | 亚洲草草网 | 97免费在线观看 | 欧亚一区二区 | 亚洲加勒比 | 丝瓜av| 亚洲熟女综合色一区二区三区 | 自拍视频网站 | 久久国产电影 | 玖玖精品在线视频 | 西西人体做爰大胆gogo直播 | 一级视频片 | 久久久久人妻精品一区二区三区 | 特级精品毛片免费观看 | 久久99久久99精品免观看软件 | 日本一区二区三区免费电影 | 538国产精品视频一区二区 | 国产精品极品白嫩 | 91色爱| 久久精品99国产 | 日本不卡免费 | 1级性生活片| 国产一区二区三区久久 | 不卡的毛片 | 校园春色综合网 | 国产精品外围 | 高级家教课程在线观看 | 手机看片日韩欧美 | 日韩欧美亚洲国产精品字幕久久久 | 波多野结衣福利 | 久久久精品影视 | 亚洲精品白虎 | 1024金沙人妻一区二区三区 | 一二级毛片 | 一区二区三区在线播放 | 久久人人超碰 | 亚洲xxxx天美 | 日韩视频在线观看一区二区 | 欧美色图3p | 亚洲综合自拍偷拍 | 探花国产精品一区二区 | 蜜桃9999| 久久精品偷拍视频 | 精品视频久久久久久 | 视频精品一区二区 | 一炮成瘾1v1高h| 特黄做受又粗又大又硬老头 | 狠狠地日 | 精品国产乱码久久久久久婷婷 |