ホームページ >バックエンド開発 >PHPチュートリアル >php Elasticsearch を使用して高性能の検索エンジンを構築するにはどうすればよいですか?

php Elasticsearch を使用して高性能の検索エンジンを構築するにはどうすればよいですか?

WBOY
WBOYオリジナル
2023-09-13 08:19:411076ブラウズ

如何使用php Elasticsearch构建高性能的搜索引擎?

php Elasticsearch を使用して高性能の検索エンジンを構築するにはどうすればよいですか?

データ量が増加し続けるにつれて、高性能の検索エンジンを構築することがますます重要になっています。 Elasticsearch は、強力でありながら使いやすいオープンソースの検索および分析エンジンであり、高性能の検索エンジンを構築するための推奨ツールの 1 つです。この記事では、php Elasticsearch ライブラリを使用して高パフォーマンスの検索エンジンを構築する方法と詳細なコード例を紹介します。

  1. Elasticsearch のインストール

まず、Elasticsearch サーバーをインストールする必要があります。 Elasticsearch 公式 Web サイトから、オペレーティング システムに適したバージョンをダウンロードしてインストールできます。インストールが完了したら、Elasticsearch サーバーを起動します。

  1. php Elasticsearch ライブラリのインストール

次に、PHP プロジェクトに php Elasticsearch ライブラリをインストールする必要があります。 Composer を使用して、PHP の依存関係を管理できます。プロジェクトのルート ディレクトリにcomposer.json ファイルを作成し、次のコードを追加します。

{
    "require": {
        "elasticsearch/elasticsearch": "^7.0"
    }
}

次に、composer install コマンドを実行して、php Elasticsearch ライブラリをインストールします。

  1. Elasticsearch サーバーへの接続

php Elasticsearch ライブラリをインストールしたら、Elasticsearch サーバーに接続できます。 PHP ファイルで、次のコードを使用して Elasticsearch クライアント インスタンスを作成します。

<?php

require 'vendor/autoload.php';

use ElasticsearchClientBuilder;

$client = ClientBuilder::create()->build();
  1. インデックスの作成

インデックスは、Elasticsearch でデータの論理構造を保存および整理するために使用されます。データを保存するには、Elasticsearch に新しいインデックスを作成する必要があります。次のコードを使用して、「my_index」という名前のインデックスを作成します。

$params = [
    'index' => 'my_index'
];

$response = $client->indices()->create($params);
  1. ドキュメントの追加

インデックスを作成したら、インデックスへのドキュメントの追加を開始できます。ドキュメントは、Elasticsearch のストレージの最小単位です。次のコードを使用して、新しいドキュメントを追加します。

$params = [
    'index' => 'my_index',
    'body' => [
        'title' => 'Example Document',
        'content' => 'This is an example document',
        'tags' => ['example', 'document']
    ]
];

$response = $client->index($params);
  1. Search

ドキュメントをインデックスに追加したので、検索を開始できます。次のコードを使用して、単純な検索クエリを実行します。

$params = [
    'index' => 'my_index',
    'body' => [
        'query' => [
            'match' => [
                'content' => 'example'
            ]
        ]
    ]
];

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

これにより、検索条件に一致するドキュメントが返されます。

  1. 機能を追加

基本的な検索機能に加えて、Elasticsearch は、集計、フィルター、並べ替えなどのより高度な検索機能もサポートしています。以下にサンプル コードを示します。

  • 集計クエリを実行します。
$params = [
    'index' => 'my_index',
    'body' => [
        'aggs' => [
            'by_tag' => [
                'terms' => [
                    'field' => 'tags'
                ]
            ]
        ]
    ]
];

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

これにより、タグによってグループ化された集計結果が返されます。

  • フィルターの追加:
$params = [
    'index' => 'my_index',
    'body' => [
        'query' => [
            'bool' => [
                'must' => [
                    'match' => ['content' => 'example']
                ],
                'filter' => [
                    'range' => [
                        'date' => [
                            'gte' => '2021-01-01'
                        ]
                    ]
                ]
            ]
        ]
    ]
];

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

これにより、検索条件を満たし、日付が 2021 年 1 月 1 日以降のドキュメントが返されます。

  • 並べ替えの追加:
$params = [
    'index' => 'my_index',
    'body' => [
        'query' => [
            'match' => ['content' => 'example']
        ],
        'sort' => [
            'date' => 'desc'
        ]
    ]
];

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

これにより、日付の降順に並べ替えられたドキュメントが返されます。

上記の手順を通じて、php Elasticsearch ライブラリを使用して基本的な検索エンジンを構築し、いくつかの一般的な高度な検索機能を追加しました。ニーズに応じてさらに拡張および最適化できます。この記事が、高性能の検索エンジンの開発に少しでも役立つことを願っています。

以上がphp Elasticsearch を使用して高性能の検索エンジンを構築するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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