PHP と Elasticsearch を使用してほぼリアルタイムの検索を実装する方法
検索機能は、最新の Web アプリケーションの重要な部分です。大量のデータや複数のユーザーによる同時検索を扱う場合、従来のデータベース クエリ方法ではニーズを満たすことができなくなります。 Elasticsearch は、大規模なデータを迅速に処理し、高いパフォーマンスと高可用性を提供できるオープンソースの分散型検索および分析エンジンです。この記事では、PHP と Elasticsearch を使用して、ほぼリアルタイムの検索機能を実装する方法を紹介します。
まず、Elasticsearch をサーバーにインストールする必要があります。公式 Web サイト (https://www.elastic.co/downloads/elasticsearch) からインストール パッケージの最新バージョンをダウンロードし、公式ドキュメントに従ってインストールおよび設定できます。
次に、PHP の Elasticsearch クライアント ライブラリをインストールする必要があります。 Composer を使用してインストールし、次のコマンドを実行できます:
composer require elasticsearch/elasticsearch
PHP コードでは、最初に Elasticsearch クライアントのインスタンスを作成する必要があります。そしてElasticsearchサーバーに接続します。簡単な例を次に示します。
require 'vendor/autoload.php'; $client = ElasticsearchClientBuilder::create()->build();
検索する前に、まずインデックスとマッピングを作成する必要があります。インデックスは、従来のデータベースのテーブルと同様に、Elasticsearch にデータを保存するための論理概念です。
次に、インデックスの作成とマッピングの例を示します。
$params = [ 'index' => 'my_index', 'body' => [ 'mappings' => [ 'properties' => [ 'title' => [ 'type' => 'text', ], 'content' => [ 'type' => 'text', ], ], ], ], ]; $response = $client->indices()->create($params);
上記のコードでは、my_index
という名前のインデックスが作成され、title
およびcontent
フィールドはマッピングを定義します。実際のニーズに応じて、さまざまなフィールドとマッピング タイプを定義できます。
検索する前に、データをインデックスに追加する必要があります。以下に例を示します。
$params = [ 'index' => 'my_index', 'body' => [ 'title' => 'example title', 'content' => 'example content', ], ]; $response = $client->index($params);
上記のコードでは、title
フィールドとcontent
フィールドを含むドキュメントがインデックスmy_index
に追加されます。実際のニーズに応じて、さらに多くのフィールドとコンテンツを追加できます。
最後に、実際の検索操作を実行するための検索クエリを作成できます。以下は簡単な検索クエリの例です。
$params = [ 'index' => 'my_index', 'body' => [ 'query' => [ 'match' => [ 'title' => 'example', ], ], ], ]; $response = $client->search($params); foreach ($response['hits']['hits'] as $hit) { echo $hit['_source']['title'] . " "; }
上記のコードでは、title
フィールドに基づいて検索クエリが実行され、検索結果のtitle# が出力されます。 。 ##分野。
以上がPHP と Elasticsearch を使用してほぼリアルタイムの検索を実装する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。