ホームページ PHPフレームワーク Workerman Workerman でのデータ ストレージと検索に ElasticSearch を使用する方法

Workerman でのデータ ストレージと検索に ElasticSearch を使用する方法

Nov 07, 2023 pm 01:40 PM
workerman elasticsearch 検索 データストレージ

Workerman でのデータ ストレージと検索に ElasticSearch を使用する方法

Web 開発では、データの保存と検索は非常に重要な部分です。 ElasticSearch は、データの検索と分析で広く使用されているオープンソースの分散検索エンジンです。大量のデータを処理でき、効率的な検索および集計機能を提供します。 Workerman は、リアルタイム通信、オンライン ゲーム、同時実行性の高い Web サービスなどのアプリケーションの開発に適した高性能 PHP ソケット フレームワークです。この記事では、Workerman でのデータ保存と検索に ElasticSearch を使用する方法を紹介します。

  1. ElasticSearch のインストールと構成

始める前に、ElasticSearch をインストールして構成する必要があります。 ElasticSearch の公式 Web サイト 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 コールバック関数を通じてワーカー プロセスが開始されるときの動作も定義します。

  1. 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);
ログイン後にコピー
  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 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

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

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

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

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

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

Xianyu でユーザーを検索する方法 Xianyu でユーザーを検索する方法 Feb 24, 2024 am 11:25 AM

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

Baidu の高度な検索の使用方法 Baidu の高度な検索の使用方法 Feb 22, 2024 am 11:09 AM

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

Workerman ドキュメントにファイルのアップロードとダウンロードを実装する Workerman ドキュメントにファイルのアップロードとダウンロードを実装する Nov 08, 2023 pm 06:02 PM

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

localstorage がデータを正常に保存できないのはなぜですか? localstorage がデータを正常に保存できないのはなぜですか? Jan 03, 2024 pm 01:41 PM

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

WPS テーブルで検索しているデータが見つかりません。検索オプションの場所を確認してください。 WPS テーブルで検索しているデータが見つかりません。検索オプションの場所を確認してください。 Mar 19, 2024 pm 10:13 PM

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

モバイルタオバオで店舗を探す方法 店舗名の検索方法 モバイルタオバオで店舗を探す方法 店舗名の検索方法 Mar 13, 2024 am 11:00 AM

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

スウールとワーカーマンはどちらが良いですか? スウールとワーカーマンはどちらが良いですか? Apr 09, 2024 pm 07:00 PM

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

Workerman ドキュメントの基本的な使用方法を実装する方法 Workerman ドキュメントの基本的な使用方法を実装する方法 Nov 08, 2023 am 11:46 AM

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

See all articles