ホームページ  >  記事  >  バックエンド開発  >  PHP関数のElasticSearch関数

PHP関数のElasticSearch関数

WBOY
WBOYオリジナル
2023-05-19 10:40:53821ブラウズ

ビッグデータ時代の到来により、データの保存と取得の重要性がますます高まっています。 Lucene 検索エンジンをベースにした大規模な分散型検索および分析エンジンとして、ElasticSearch は間違いなく現在最も人気のある検索エンジンの 1 つとなっています。 PHP アプリケーションでは、データを取得するために ElasticSearch を使用する必要があることがよくありますが、この記事では、よく使用されるいくつかの PHP 関数の ElasticSearch 関数を紹介します。

  1. Elasticsearch クラス

1 つ目は Elasticsearch クラスです。これは、PHP クライアントが Elasticsearch サーバーと対話するためのコア クラスです。一般的に使用される初期化方法は次のとおりです。

$hosts = ['http://localhost:9200'];
$client = ElasticsearchClientBuilder::create()->setHosts($hosts)->build();

その中で、$hosts は Elasticsearch サーバーのアドレスであり、1 つ以上のアドレスの配列にすることができます。 getClient() メソッドは $client オブジェクトを取得して、後続の操作を容易にすることができます。

  1. インデックスの作成

ElasticSearch では、まずデータを保存するためのインデックスを作成する必要があります。以下は、インデックスを作成するための簡単なコード例です。

$params = [
    'index' => 'my_index',
    'body' => [
        'settings' => [
            'number_of_shards' => 1,
            'number_of_replicas' => 0
        ]
    ]
];
$response = $client->indices()->create($params);

上記のコードでは、$params パラメーターには、作成するインデックス名とインデックス設定が含まれています。本体では、シャードの数やインデックスのコピーなどを設定できます。最後に、create() メソッドを実行してインデックス作成操作を完了します。

  1. ドキュメントの追加

ドキュメントの追加は、インデックスにデータを追加する主な方法の 1 つです。以下はドキュメントを追加する例です。

$params = [
    'index' => 'my_index',
    'type' => 'my_type',
    'id' => '1',
    'body' => [
        'title' => 'My first document',
        'content' => 'This is the content of my first document'
    ]
];
$response = $client->index($params);

上記のコードでは、$params パラメーターには、追加するドキュメントのコンテンツと追加メソッドが含まれています。このうち、indexは追加するインデックス、typeは追加する文書の種類、idは追加する文書のID番号、bodyは追加する文書の内容を表します。最後に、index()メソッドを実行してドキュメントの追加操作を完了します。

  1. ドキュメントの更新

既存のドキュメントのコンテンツを変更する必要がある場合は、update() メソッドを使用できます。以下はドキュメントを更新する例です。

$params = [
    'index' => 'my_index',
    'type' => 'my_type',
    'id' => '1',
    'body' => [
        'doc' => [
            'title' => 'Updated document title',
            'content' => 'This is the updated content of my first document'
        ]
    ]
];
$response = $client->update($params);

上記のコードでは、$params パラメーターには、更新するドキュメントのコンテンツと更新メソッドが含まれています。このうち、docは更新対象の文書内容を表します。最後に、update() メソッドを実行してドキュメントの更新操作を完了します。

  1. ドキュメントの削除

既存のドキュメントを削除する必要がある場合は、delete() メソッドを使用できます。次に、ドキュメントを削除する例を示します。

$params = [
    'index' => 'my_index',
    'type' => 'my_type',
    'id' => '1'
];
$response = $client->delete($params);

上記のコードでは、$params パラメータには、削除するドキュメントのコンテンツと削除方法が含まれています。最後に、delete() メソッドを実行してドキュメントの削除を完了します。

  1. ドキュメントの検索

検索は、ElasticSearch の最も一般的な機能の 1 つです。以下は簡単な検索の例です。

$params = [
    'index' => 'my_index',
    'type' => 'my_type',
    'body' => [
        'query' => [
            'match' => [
                'title' => 'document'
            ]
        ]
    ]
];
$response = $client->search($params);

上記のコードでは、$params パラメーターに検索コンテンツと検索メソッドが含まれています。このうち、titleは検索対象のフィールドを表し、documentは検索対象の内容を表します。最後に、search() メソッドを実行してドキュメントの検索を完了します。

  1. 集計

検索に加えて、ElasticSearch はさまざまな集計操作もサポートしています。以下は簡単な集計の例です。

$params = [
    'index' => 'my_index',
    'type' => 'my_type',
    'body' => [
        'aggs' => [
            'my_agg' => [
                'terms' => [
                    'field' => 'title'
                ]
            ]
        ]
    ]
];
$response = $client->search($params);

上記のコードでは、$params パラメータには集計対象のコンテンツと集計方法が含まれています。このうち、my_agg は集計の名前、title は集計対象のフィールドを表します。最後に、search() メソッドを実行して集計操作を完了します。

概要

上記は、よく使われるPHP関数のうち、ElasticSearch関数の紹介です。もちろん、一括追加、一括削除、ページング検索、複雑な集計など、他にも多くの操作があります。実際の開発では、特定のニーズに基づいてさまざまな操作方法を選択する必要があります。 ElasticSearch は、検索と集計において非常に強力な機能を備えており、ビッグデータの処理にも非常に優れているため、多くの PHP 開発者に役立つと思います。

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

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