PHP と Elasticsearch の統合

王林
王林オリジナル
2023-05-15 13:31:361115ブラウズ

PHP と Elasticsearch の統合

ビッグ データとデータ マイニングの発展により、検索エンジンは私たちの生活に欠かせないツールになりました。 Elasticsearch は、全文検索、データ分析、リアルタイムのデータ ストレージとクエリを簡単に実行できる、高速、オープン、スケーラブルな検索および分析エンジンです。では、PHP を使用して Elasticsearch と統合するにはどうすればよいでしょうか?

1. Elasticsearch のインストール

まず、Elasticsearch をインストールする必要があります。 Elasticsearch 公式 Web サイトにアクセスして、対応するバージョンのインストール パッケージをダウンロードし、希望の場所に解凍します。 elasticsearch.bat (Windows)/elasticsearch コマンド (Linux) は、Elasticsearch の bin ディレクトリにあります。

elasticsearch.bat/ コマンドを実行して Elasticsearch を開始します。すべてがうまくいけば、Elasticsearch ノードが開始されます。 http://localhost:9200/ アドレスを使用して、Elasticsearch が提供する RESTful API にアクセスします。

2. PHP の Elasticsearch クライアントをインストールして設定する

Elasticsearch-PHP や公式 Elasticsearch ライブラリ php-elasticsearch などの PHP の Elasticsearch クライアントをダウンロードしてインストールする必要があります (Elasticsearch 7 バージョンはインストールされています))。これらのライブラリはすべて非常に便利で、完全なドキュメントと例が含まれています。 Elasticsearch-PHP クライアントを例に挙げてみましょう:

1. インストール

Composer を使用して Elasticsearch-PHP クライアントをインストールできます。 PHP プロジェクトのルート ディレクトリに切り替えて、次のコマンドを実行します:

composer require elasticsearch/elasticsearch

2.

を使用してオートローダーを導入し、クライアントをインスタンス化します。 Elasticsearch End オブジェクトに接続されています:

require 'vendor/autoload.php';
$client = ElasticsearchClientBuilder::create()->build();

ここでビルドしますPHP Elasticsearch クライアント。次に、Elasticsearch データに対して CRUD 操作を実行できます。

3. Elasticsearch の操作

1. インデックスの作成

インデックスは Elasticsearch の最も重要な概念の 1 つであり、さまざまなビジネス ニーズに応じてさまざまなインデックスを作成する必要があります。 my_index という名前のインデックスは、次のコードを使用して作成できます。

$params = [

'index' => 'my_index',
'body' => [
    'settings' => [
        'number_of_shards' => 3,
        'number_of_replicas' => 2
    ]
]

];
$response = $client->indices()->create ( $params);

上記のコードでは、構築するインデックスの名前と、インデックスに対応する設定属性 (シャードとレプリカの数) を指定します。実際の使用においては、ビジネスニーズに応じて、より詳細な設定属性を構成することをお勧めします。

2. ドキュメントの挿入

一括メソッドを使用して複数のドキュメントを挿入します:

$params = [

'body' => [
    ['index' => ['_id' => 1]],
    ['name' => 'product1', 'price' => 10.0, 'description' => 'description of product1'],
    ['index' => ['_id' => 2]],
    ['name' => 'product2', 'price' => 20.0, 'description' => 'description of product2'],
    ['index' => ['_id' => 3]],
    ['name' => 'product3', 'price' => 30.0, 'description' => 'description of product3'],
    ['index' => ['_id' => 4]],
    ['name' => 'product4', 'price' => 40.0, 'description' => 'description of product4'],
],
'index' => 'my_index',
'type' => 'my_type'

];
$response = $ client->bulk($params);

3. ドキュメントのクエリ

検索メソッドを使用してドキュメントをクエリします:

$params = [

'index' => 'my_index',
'type' => 'my_type',
'body' => [
    'query' => [
        'match' => [
            'name' => 'product1'
        ]
    ]
]

] ;
$response = $client->search($params);

4. インデックスの削除

インデックスを削除するには、delete メソッドを使用できます:

$params = [

'index' => 'my_index'

];
$response = $client->indices()->delete($params);

概要

上記のコードを通じて、Elasticsearch インデックスの作成、ドキュメントの挿入、ドキュメントのクエリ、インデックスの削除、その他の操作を簡単に行うことができ、間違いなく検索エクスペリエンスが向上します。 Elasticsearch と PHP の統合は、非常に実用的で強力なツールです。

以上がPHP と Elasticsearch の統合の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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