日韩性视频-久久久蜜桃-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的全部內容,希望文章能夠幫你解決所遇到的問題。

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

主站蜘蛛池模板: 日韩激情在线视频 | 成年人免费看 | av青草| 影音先锋每日资源 | 天堂一二三区 | 国产卡一卡二 | 污视频在线观看网址 | 激情五月色综合国产精品 | jzzijzzij亚洲成熟少妇在线观看 久久久精品人妻一区二区三区 | 亚洲精品久久一区二区三区777 | 色婷婷a | 色男人av | 久草高清 | 女人18片毛片60分钟 | 亚洲爱情岛论坛永久 | 国产免费黄色小视频 | 国产资源网站 | 国产八区| 午夜黄色网址 | 亚洲视频一区在线观看 | 色哟哟视频网站 | 欧美亚洲色综久久精品国产 | 99热这里只有精品2 91免费版黄 | 婷婷伊人五月天 | 乳孔很大能进去的av番号 | 亚洲区一 | 久久99精品国产.久久久久 | 黄色一级大片在线免费看国产一 | 久久婷婷五月国产色综合激情 | 国产精选自拍 | 成人久久网 | 日韩视频一区二区三区在线播放免费观看 | 亚洲无在线观看 | 欧美综合一区二区三区 | 亚洲青色在线 | 91免费版在线 | 色咪咪网站 | 新疆毛片| 91插视频| 一级特黄录像免费看 | 免费在线观看不卡av | 日韩国产精品一区二区 | 99re9| 高清国产午夜精品久久久久久 | 精品黑人一区二区三区国语馆 | 亚洲免费在线视频观看 | www.四虎在线观看 | 先锋影音色 | 国v精品久久久网 | 国产精品无码乱伦 | 91精品国产自产精品男人的天堂 | 日韩欧美视频免费在线观看 | 日本女优一区 | 香蕉视频在线网址 | 天美麻花果冻视频大全英文版 | 精品成人中文无码专区 | 老司机久久精品视频 | 欧美另类第一页 | 污污视频在线看 | 国产日韩欧美视频在线 | 99re99热 | 国产aaaaa毛片 | 大地资源影视在线播放观看高清视频 | 欧美三级一区二区 | 在线观看免费中文字幕 | 美国黄色一级视频 | 男女激情视频网站 | 亚洲影视在线观看 | 在线观看亚洲精品 | 久久福利一区 | 1000部国产精品成人观看 | 天天摸天天做天天爽水多 | 一级黄色美女 | 免费观看黄网站 | av在线最新 | 天天碰免费视频 | 精品一区二区三区成人免费视频 | 精品人妻少妇嫩草av无码专区 | 青青草成人在线 | 亚洲成人影音 | 色日韩| 国产一区二区在 | 久久精品影视 | 亚洲青青操 | 精品国产区一区二 | 国产精品一区二区性色av | 亚洲高清av在线 | www.一起操 | 殴美一级片 | 淫欲av| 国产在线精品一区二区三区 | 亚洲av电影一区二区 | 日韩a在线观看 | 久久久久久国产精品日本 | 久久官网 | 高清亚洲 | a一级黄色 | 一级黄色片视频 | 青青草97国产精品麻豆 |