本篇文章給大家分享的是有關怎么在PHP中使用ElasticSearch實現(xiàn)搜索,小編覺得挺實用的,因此分享給大家學習,希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。
成都創(chuàng)新互聯(lián)公司是一家專注于網站設計制作、成都網站設計與策劃設計,蕉嶺網站建設哪家好?成都創(chuàng)新互聯(lián)公司做網站,專注于網站建設10年,網設計領域的專業(yè)建站公司;建站業(yè)務涵蓋:蕉嶺等地區(qū)。蕉嶺做網站價格咨詢:13518219792環(huán)境
php 7.2
elasticsearch 6.2 下載
elasticsearch-php 6 下載
安裝 elasticsearch
下載源文件,解壓,重新建一個用戶,將目錄的所屬組修改為此用戶,因為 elasticsearch 無法用 root 用戶啟動。
wget /tupian/20230522/elasticsearch-6.2.3.tar.gz tar zxvf elasticsearch-6.2.3.tar.gz useradd elasticsearch password elasticsearch chown elasticsearch:elasticsearch elasticsearch-6.2.3 cd elasticsearch-6.2.3 ./bin/elasticsearch // 啟動
安裝 PHP 擴展
我這里使用的是 composer 安裝 elasticsearch-php。在 composer.json 文件中加入 "elasticsearch/elasticsearch": "~6.0",執(zhí)行 composer update。
{ "require": { // ... "elasticsearch/elasticsearch": "~6.0" // ... } }
測試例子
創(chuàng)建表和測試數(shù)據(jù)
我這里準備了一張文章表來進行測試,首先是建表,其次寫入測試數(shù)據(jù),準備工作完畢之后,就開始編輯測試用例。
create table articles( id int not null primary key auto_increment, title varchar(200) not null comment '標題', content text comment '內容' ); insert into articles(title, content) values ('Laravel 測試1', 'Laravel 測試文章內容1'), ('Laravel 測試2', 'Laravel 測試文章內容2'), ('Laravel 測試3', 'Laravel 測試文章內容3');
從 Mysql 讀取數(shù)據(jù)
try { $db = new PDO('mysql:host=127.0.0.1;dbname=test', 'root', 'root'); $sql = 'select * from articles'; $query = $db->prepare($sql); $query->execute(); $lists = $query->fetchAll(); print_r($lists); } catch (Exception $e) { echo $e->getMessage(); }
實例化
require './vendor/autoload.php'; use Elasticsearch\ClientBuilder; $client = ClientBuilder::create()->build();
名詞解釋:索引相當于 MySQL 中的表,文檔相當于 MySQL 中的行記錄
elasticsearch 的動態(tài)性質,在添加第一個文檔的時候自動創(chuàng)建了索引和一些默認設置。
將文檔加入索引
foreach ($lists as $row) { $params = [ 'body' => [ 'id' => $row['id'], 'title' => $row['title'], 'content' => $row['content'] ], 'id' => 'article_' . $row['id'], 'index' => 'articles_index', 'type' => 'articles_type' ]; $client->index($params); }
從索引中獲取文檔
$params = [ 'index' => 'articles_index', 'type' => 'articles_type', 'id' => 'articles_1' ]; $res = $client->get($params); print_r($res);
從索引中刪除文檔
$params = [ 'index' => 'articles_index', 'type' => 'articles_type', 'id' => 'articles_1' ]; $res = $client->delete($params); print_r($res);
刪除索引
$params = [ 'index' => 'articles_index' ]; $res = $client->indices()->delete($params); print_r($res);
創(chuàng)建索引
$params['index'] = 'articles_index'; $params['body']['settings']['number_of_shards'] = 2; $params['body']['settings']['number_of_replicas'] = 0; $client->indices()->create($params);
搜索
$params = [ 'index' => 'articles_index', 'type' => 'articles_type', ]; $params['body']['query']['match']['content'] = 'Laravel'; $res = $client->search($params); print_r($res);
以上就是怎么在PHP中使用ElasticSearch實現(xiàn)搜索,小編相信有部分知識點可能是我們日常工作會見到或用到的。希望你能通過這篇文章學到更多知識。更多詳情敬請關注創(chuàng)新互聯(lián)行業(yè)資訊頻道。
網頁題目:怎么在PHP中使用ElasticSearch實現(xiàn)搜索-創(chuàng)新互聯(lián)
URL鏈接:http://muchs.cn/article22/dhghcc.html
成都網站建設公司_創(chuàng)新互聯(lián),為您提供動態(tài)網站、Google、定制網站、網站設計公司、靜態(tài)網站、網站策劃
聲明:本網站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內容