Workerman でのデータ ストレージと検索に ElasticSearch を使用する方法
Web 開発では、データの保存と検索は非常に重要な部分です。 ElasticSearch は、データの検索と分析で広く使用されているオープンソースの分散検索エンジンです。大量のデータを処理でき、効率的な検索および集計機能を提供します。 Workerman は、リアルタイム通信、オンライン ゲーム、同時実行性の高い Web サービスなどのアプリケーションの開発に適した高性能 PHP ソケット フレームワークです。この記事では、Workerman でのデータ保存と検索に ElasticSearch を使用する方法を紹介します。
- ElasticSearch のインストールと構成
始める前に、ElasticSearch をインストールして構成する必要があります。 ElasticSearch の公式 Web サイト https://www.elastic.co/downloads/elasticsearch から最新のインストール パッケージをダウンロードし、オペレーティング システムの種類に応じてインストールできます。インストールが完了したら、次のコマンドを使用して ElasticSearch を開始できます:
$ cd elasticsearch/bin $ ./elasticsearch
同時に、リスニング ポートやクラスター名の設定など、config/elasticsearch.yml ファイルで ElasticSearch を構成することもできます。 、データストレージパス。
- 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 コールバック関数を通じてワーカー プロセスが開始されるときの動作も定義します。
- ElasticSearch でのデータの追加、削除、確認、変更
ElasticSearch をデータの保存と Workerman での検索に使用する場合、追加、削除、および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 では、データクエリを精密クエリとファジークエリの 2 つの方法に分けます。このうち、精密クエリとはフィールドと値を指定してデータを検索することを指し、ファジークエリとはファジーマッチングによってデータを検索することを指します。次のコードを使用してデータ クエリを完了できます:
// 精确查询 $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);
- 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 からデータを取得し、結果をクライアントに送信します。
- 概要
この記事では、Workerman でのデータ ストレージと検索に ElasticSearch を使用する方法を紹介します。 ElasticSearch でのデータの追加、削除、クエリ、および変更操作を習得することで、Web アプリケーションにデータを迅速に保存および検索できるようになります。同時に、上記の操作をよりよく理解し、適用するために、Workerman に単純な ElasticSearch アプリケーションも実装しました。
以上がWorkerman でのデータ ストレージと検索に ElasticSearch を使用する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック









Xianyu はどのようにしてユーザーを検索しますか?ソフトウェア Xianyu では、ソフトウェア内で通信したいユーザーを直接見つけることができます。しかし、ユーザーを検索する方法がわかりません。検索後にユーザー間で表示するだけです。次は編集部からユーザーへの検索方法についてご紹介しますので、興味のある方はぜひご覧ください! Xianyu でユーザーを検索するには? 回答: 検索されたユーザーの詳細を表示します はじめに: 1. ソフトウェアを入力し、検索ボックスをクリックします。 2. ユーザー名を入力し、「検索」をクリックします。 3. 検索ボックスの下の[ユーザー]を選択して、該当するユーザーを検索します。

Baidu 詳細検索の使用方法 Baidu 検索エンジンは現在中国で最も一般的に使用されている検索エンジンの 1 つであり、豊富な検索機能を提供しており、その 1 つが詳細検索です。高度な検索は、ユーザーが必要な情報をより正確に検索し、検索効率を向上させるのに役立ちます。では、Baidu の高度な検索を使用するにはどうすればよいでしょうか?最初のステップは、Baidu 検索エンジンのホームページを開くことです。まず、Baidu の公式 Web サイト (www.baidu.com) を開く必要があります。ここが百度検索の入り口です。 2 番目のステップでは、「詳細検索」ボタンをクリックします。 Baidu の検索ボックスの右側に、

Workerman ドキュメントでファイルのアップロードとダウンロードを実装するには、特定のコード サンプルが必要です はじめに: Workerman は、シンプル、効率的、使いやすい高性能 PHP 非同期ネットワーク通信フレームワークです。実際の開発では、ファイルのアップロードとダウンロードが一般的な機能要件となりますが、この記事では、Workerman フレームワークを使用してファイルのアップロードとダウンロードを実装する方法と、具体的なコード例を紹介します。 1. ファイル アップロード: ファイル アップロードとは、ローカル コンピューター上のファイルをサーバーに転送する操作を指します。以下が使用されます

localstorage へのデータの保存が常に失敗するのはなぜですか?特定のコード例が必要 フロントエンド開発では、ユーザー エクスペリエンスを向上させ、その後のデータ アクセスを容易にするために、ブラウザー側にデータを保存する必要があることがよくあります。 Localstorage は、クライアント側のデータ ストレージ用に HTML5 によって提供されるテクノロジであり、データを保存し、ページが更新または閉じられた後にデータの永続性を維持するための簡単な方法を提供します。ただし、データ ストレージにローカルストレージを使用すると、

インテリジェンスが支配する時代では、オフィス ソフトウェアも普及し、Wps フォームはその柔軟性により大多数のオフィス ワーカーに採用されています。仕事では、単純な帳票作成や文字入力だけでなく、実際の業務を遂行するためにより高度な操作スキルを習得することが求められており、データ付きの帳票や帳票を利用することで、より便利で明確、正確なものとなります。今日の教訓は、「WPS テーブルでは、検索しているデータが見つかりません。検索オプションの場所を確認してください。なぜですか?」です。 1. まず Excel テーブルを選択し、ダブルクリックして開きます。次に、このインターフェイスですべてのセルを選択します。 2. 次に、このインターフェースで、上部ツールバーの「ファイル」の「編集」オプションをクリックします。 3. 次に、このインターフェースで「」をクリックします。

タオバオのモバイルアプリには良い商品がたくさんあります。いつでもどこでも購入でき、すべて正規品です。各商品の価格は明確です。複雑な操作は一切なく、より便利にお買い物をお楽しみいただけます。自由に検索して購入できます さまざまなカテゴリの商品セクションがすべてオープンしています 個人の配送先住所と連絡先番号を追加すると、運送会社から連絡があり、最新の物流動向をリアルタイムで確認できます初めて利用する方、商品の検索方法が分からない方でも、もちろん検索バーにキーワードを入力するだけですべての商品が表示されますので、お買い物はもうやめられません。モバイルタオバオユーザーが店舗名を検索するための詳細なオンライン方法を提供します。 1.まず携帯電話でタオバオアプリを開きます。

Swoole と Workerman はどちらも高性能の PHP サーバー フレームワークです。 Swoole は、非同期処理、優れたパフォーマンス、スケーラビリティで知られており、多数の同時リクエストと高スループットを処理する必要があるプロジェクトに適しています。 Workerman は、使いやすさや同時実行量が少ないプロジェクトに適した直感的な API を備え、非同期モードと同期モードの両方の柔軟性を提供します。

Workerman ドキュメントの基本的な使用方法の実装方法の紹介: Workerman は、開発者が同時実行性の高いネットワーク アプリケーションを簡単に構築できるようにする高性能 PHP 開発フレームワークです。この記事では、インストールと構成、サービスとリスニング ポートの作成、クライアント リクエストの処理など、Workerman の基本的な使用方法を紹介します。そして、対応するコード例を示します。 1. Workerman のインストールと構成 コマンド ラインに次のコマンドを入力して、Workerman をインストールします。
