首頁 php框架 Workerman 如何在Workerman中使用ElasticSearch進行資料儲存與搜尋

如何在Workerman中使用ElasticSearch進行資料儲存與搜尋

Nov 07, 2023 pm 01:40 PM
workerman elasticsearch 搜尋 資料儲存

如何在Workerman中使用ElasticSearch進行資料儲存與搜尋

在Web開發中,資料儲存與搜尋是非常重要的一部分。 ElasticSearch是一個開源的分散式搜尋引擎,被廣泛應用於資料搜尋和分析。它能夠處理大量數據並提供高效的搜尋和聚合功能。 Workerman是高效能的PHP socket框架,適用於開發即時通訊、線上遊戲和高並發Web服務等應用。在本文中,我們將介紹如何在Workerman中使用ElasticSearch進行資料儲存與搜尋。

  1. ElasticSearch安裝與設定

在開始之前,我們需要先安裝並設定ElasticSearch。可以在ElasticSearch的官方網站https://www.elastic.co/downloads/elasticsearch下載最新的安裝包,依照作業系統類型進行安裝。安裝完成後,可以透過以下指令來啟動ElasticSearch:

$ cd elasticsearch/bin
$ ./elasticsearch
登入後複製

同時,我們也可以在config/elasticsearch.yml檔案中進行ElasticSearch的配置,例如設定監聽埠、叢集名稱和資料儲存路徑等。

  1. Workerman的安裝與設定

在使用Workerman之前,我們需要先安裝並設定它。可以透過在終端機中輸入以下命令來安裝Workerman:

$ composer require workerman/workerman
登入後複製

安裝完成後,我們需要建立一個PHP腳本文件,並在其中引入Workerman的Autoloader類,並添加以下程式碼來啟動Workerman:

    require_once __DIR__ . '/vendor/autoload.php';
    use WorkermanWorker;

    $worker = new Worker();
    $worker->count = 4;
    $worker->onWorkerStart = function($worker){
      // do something
    };

    Worker::runAll();
登入後複製

在上述程式碼中,我們建立了一個Worker對象,並設定了進程數為4。同時,我們也透過onWorkerStart回呼函數來定義了Worker進程啟動時的行為。

  1. ElasticSearch中資料的增刪查改

在Workerman中使用ElasticSearch進行資料儲存與搜索,我們需要掌握ElasticSearch中資料的增刪查改操作,具體操作如下所示:

a. 資料的建立

在ElasticSearch中,資料的建立是透過對指定索引和文件類型的HTTP PUT請求完成的,可以使用以下程式碼來建立數據:

curl -XPUT http://localhost:9200/{index}/{type}/{id} -d '{
  "title":"ElasticSearch tutorial",
  "tags":["search","elasticsearch"],
  "body":"ElasticSearch is a powerful search engine."
}'
登入後複製

當然,我們也可以使用PHP程式碼來完成資料的建立:

$client = ElasticsearchClientBuilder::create()->build();
$params = [
    'index' => 'my_index',
    'type' => 'my_type',
    'id' => 'my_id',
    'body' => [
        'title' => 'ElasticSearch tutorial',
        'tags' => ['search', 'elasticsearch'],
        'body' => 'ElasticSearch is a powerful search engine.'
    ]
];
$response = $client->index($params);
登入後複製

b. 資料的查詢

在ElasticSearch中,資料的查詢分為精確查詢和模糊查詢兩種方式。其中,精確查詢是指透過指定欄位和值來尋找數據,而模糊查詢是指透過模糊匹配來尋找數據。可以使用以下程式碼來完成資料的查詢:

// 精确查询
$client = ElasticsearchClientBuilder::create()->build();
$params = [
    'index' => 'my_index',
    'type' => 'my_type',
    'body' => [
        'query' => [
            'match' => [
                'title' => 'ElasticSearch tutorial'
            ]
        ]
    ]
];
$response = $client->search($params);

// 模糊查询
$client = ElasticsearchClientBuilder::create()->build();
$params = [
    'index' => 'my_index',
    'type' => 'my_type',
    'body' => [
        'query' => [
            'wildcard' => [
                'title' => '*search*'
            ]
        ]
    ]
];
$response = $client->search($params);
登入後複製

c. 資料的更新

#在ElasticSearch中,資料的更新操作是透過對指定索引和文件類型的HTTP POST請求完成的,可以使用以下程式碼來更新資料:

curl -XPOST http://localhost:9200/{index}/{type}/{id}/_update -d '{
  "doc":{
    "title":"New ElasticSearch tutorial"
  }
}'
登入後複製

當然,我們也可以使用PHP程式碼來完成資料的更新:

$client = ElasticsearchClientBuilder::create()->build();
$params = [
    'index' => 'my_index',
    'type' => 'my_type',
    'id' => 'my_id',
    'body' => [
        'doc' => [
            'title' => 'New ElasticSearch tutorial'
        ]
    ]
];
$response = $client->update($params);
登入後複製

d. 資料的刪除

在ElasticSearch中,資料的刪除操作是透過對指定索引和文件類型的HTTP DELETE請求完成的,可以使用以下程式碼來刪除資料:

curl -XDELETE http://localhost:9200/{index}/{type}/{id}
登入後複製

當然,我們也可以使用PHP程式碼來完成資料的刪除:

$client = ElasticsearchClientBuilder::create()->build();
$params = [
    'index' => 'my_index',
    'type' => 'my_type',
    'id' => 'my_id'
];
$response = $client->delete($params);
登入後複製
  1. Workerman中的ElasticSearch範例

透過上述操作,我們已經掌握了在ElasticSearch中進行資料儲存與搜尋的基本操作。接下來,我們將在Workerman中實作一個使用ElasticSearch進行資料儲存與搜尋的範例,具體程式碼如下所示:

require_once __DIR__ . '/vendor/autoload.php';
use WorkermanWorker;
use ElasticsearchClientBuilder;

// 创建一个Worker对象
$worker = new Worker();
$worker->count = 4;

// 启动一个ElasticSearch客户端
$client = ClientBuilder::create()->build();

// 处理连接请求
$worker->onConnect = function($connection) {
    echo "New connection from " . $connection->getRemoteIp() . PHP_EOL;
};

// 处理数据请求
$worker->onMessage = function($connection, $data) use($client) {
    $params = [
        'index' => 'my_index',
        'type' => 'my_type',
        'body' => [
            'query' => [
                'wildcard' => [
                    'title' => '*' . $data . '*'
                ]
            ]
        ]
    ];

    // 从ElasticSearch检索数据
    $response = $client->search($params);

    // 处理检索结果
    $hits = $response['hits']['hits'];
    if(count($hits) > 0) {
        $result = 'Results:' . PHP_EOL;
        foreach($hits as $hit) {
            $result .= $hit['_source']['title'] . PHP_EOL;
        }
    } else {
        $result = 'No results found.' . PHP_EOL;
    }

    // 发送结果给客户端
    $connection->send($result);
};

Worker::runAll();
登入後複製

在上述程式碼中,我們首先啟動一個ElasticSearch客戶端,並建立一個Worker物件來處理連線和資料請求。當有客戶端連線進來後,在接收到資料請求時,我們從ElasticSearch中檢索數據,並將結果傳送給客戶端。

  1. 總結

本文介紹如何在Workerman中使用ElasticSearch進行資料儲存與搜尋。透過掌握ElasticSearch中資料的增刪查改操作,我們可以快速地在Web應用中進行資料的儲存與搜尋。同時,我們也在Workerman中實作了一個簡單的ElasticSearch應用,以便更好地理解並運用上述操作。

以上是如何在Workerman中使用ElasticSearch進行資料儲存與搜尋的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

百度進階搜尋怎麼用 百度進階搜尋怎麼用 Feb 22, 2024 am 11:09 AM

百度高級搜尋怎麼用百度搜尋引擎是目前中國最常用的搜尋引擎之一,它提供了豐富的搜尋功能,其中之一就是進階搜尋。進階搜尋可以幫助使用者更精確地搜尋到所需的信息,提高搜尋效率。那麼,百度高級搜尋要怎麼使用呢?第一步,打開百度搜尋引擎首頁。首先,我們需要開啟一個百度的官方網站,也就是www.baidu.com。這是百度搜索的入口。第二步,點選進階搜尋按鈕。在百度搜尋框的右側,有

閒魚怎麼搜尋用戶 閒魚怎麼搜尋用戶 Feb 24, 2024 am 11:25 AM

閒魚怎麼搜尋用戶?在軟體閒魚中,我們可以直接在軟體裡面去找想要溝通的使用者。但卻不清楚該怎麼搜尋用戶。在搜尋後的用戶中查看即可。接下來就是小編為用戶帶來的搜尋用戶方式介紹的介紹,有興趣的用戶快來一起看看吧!閒魚怎麼搜尋用戶答:在搜尋後的用戶中查看詳情介紹:1、進入軟體,點選搜尋框。 2、輸入使用者名稱,點選搜尋。 3.再選擇搜尋框下的【用戶】,即可找到對應用戶了。

實作Workerman文件中的文件上傳與下載 實作Workerman文件中的文件上傳與下載 Nov 08, 2023 pm 06:02 PM

實現Workerman文件中的文件上傳與下載,需要具體程式碼範例引言:Workerman是一款高效能的PHP非同步網路通訊框架,具備簡潔、高效、易用等特點。在實際開發中,文件上傳和下載是常見的功能需求,本文將介紹如何使用Workerman框架實現文件的上傳和下載,並給出具體的程式碼範例。一、檔案上傳:檔案上傳是指將本機上的檔案傳輸至伺服器端的操作。下面是使用

為什麼localstorage無法成功保存資料? 為什麼localstorage無法成功保存資料? Jan 03, 2024 pm 01:41 PM

儲存資料到localstorage為何總是失敗?需要具體程式碼範例在前端開發中,我們經常需要將資料儲存在瀏覽器端,以便提高使用者體驗和方便之後的資料存取。 Localstorage是HTML5提供的一項用於客戶端儲存資料的技術,它提供了一種簡單的方法來儲存數據,並且可以在頁面刷新或關閉後保持資料的持久化。然而,當我們使用localstorage進行資料儲存時,有時

wps表格找不到正在搜尋的資料,請檢查搜尋選項位置 wps表格找不到正在搜尋的資料,請檢查搜尋選項位置 Mar 19, 2024 pm 10:13 PM

智能為主導的時代,辦公室軟體也普及開來,Wps表格由於它的靈活性被廣大的辦公室人員採用。在工作上要求我們不只是要學會簡單的表格製作和文字輸入,我們要掌握更多的操作技能,才能完成實際工作中的任務,有數據的報表,運用表格更方便更清楚更準確。今天我們帶給大家的課程是:wps表格找不到正在搜尋的資料,為什麼請檢查搜尋選項位置? 1.先選取Excel表格,雙擊開啟。然後在該介面中,選取所有的儲存格。  2、然後在該介面中,點選頂部工具列裡「檔案」裡的「編輯」選項。  3、其次在該介面中,點選頂部工具列裡的“

手機淘寶怎麼搜尋店鋪 搜尋店舖名的方法 手機淘寶怎麼搜尋店鋪 搜尋店舖名的方法 Mar 13, 2024 am 11:00 AM

手機淘寶app軟體內提供的商品好物非常多,隨時隨地想買就買,而且件件都是正品,每一件商品的價格標籤一清二楚,完全沒有任何的複雜操作,享受更加便捷的購物樂趣。隨心所欲自由搜尋選購,不同品類的商品板塊都是開放的,添加個人的收貨地址以及聯絡電話,方便快遞公司聯繫到你,實時查看最新的物流動態,那麼有些新人用戶第一次使用它,不知道如何搜尋商品,當然只需要在搜尋欄輸入關鍵字就能找到所有的商品結果,自由選購根本停不下來,現在小編在線詳細為手機淘寶用戶們帶來搜尋店鋪名的方法。  1.先打開手機淘寶app,

如何實作Workerman文件的基本使用方法 如何實作Workerman文件的基本使用方法 Nov 08, 2023 am 11:46 AM

如何實現Workerman文件的基本使用方法簡介:Workerman是一個高效能的PHP開發框架,它可以幫助開發者輕鬆建立高並發的網路應用程式。本文將介紹Workerman的基本使用方法,包括安裝和設定、建立服務和監聽連接埠、處理客戶端請求等。並給出相應的程式碼範例。一、安裝並設定Workerman在命令列中輸入以下命令來安裝Workerman:c

swoole和workerman哪個好 swoole和workerman哪個好 Apr 09, 2024 pm 07:00 PM

Swoole 和 Workerman 都是高效能 PHP 伺服器框架。 Swoole 以其非同步處理、出色的效能和可擴展性而聞名,適用於需要處理大量並發請求和高吞吐量的專案。 Workerman 提供了非同步和同步模式的靈活性,具有直覺的 API,更適合易用性和處理較低並發量的專案。

See all articles