現在の位置: ホーム> 最新記事一覧> PHPおよびElasticSearchを使用して、ほぼリアルタイム検索を実装する方法

PHPおよびElasticSearchを使用して、ほぼリアルタイム検索を実装する方法

M66 2025-06-21

PHPおよびElasticSearchを使用して、ほぼリアルタイム検索を実装する方法

検索機能は、特に大量のデータと高い並行クエリに直面している場合、最新のWebアプリケーションでは不可欠です。従来のデータベースクエリメソッドは通常、これらのニーズを満たすことができず、Elasticsearchは強力な分散検索エンジンとして、大規模なデータを効率的に処理し、近い時間検索をサポートできます。

ElasticSearchおよびPHPクライアントをインストールします

まず、サーバーにElasticSearchをインストールする必要があります。公式Webサイトにアクセスして、インストールパッケージの最新バージョンをダウンロードし、関連するドキュメントに従ってインストールして構成できます。

次に、Composerを使用して、PHPのElasticSearchクライアントライブラリをインストールします。次のコマンドを実行してインストールします。

作曲家には、Elasticsearch/Elasticsearchが必要です

ElasticSearchに接続します

PHPコードでは、最初にElasticSearchクライアントのインスタンスを作成し、ElasticSearchサーバーに接続する必要があります。これがサンプルコードです:

「ベンダー/autoload.php」が必要です。
$ client = elasticsearchclientbuilder :: create() - > build();

インデックスとマップを作成します

検索する前に、インデックスとマッピングを作成する必要があります。 ElasticSearchでは、インデックスはデータベース内のテーブルと同等であり、マップはデータの構造を定義します。インデックスを作成してマッピングを定義する例は次のとおりです。

$ params = [
    'index' => 'my_index'、
    'body' => [
        「マッピング」=> [
            「プロパティ」=> [
                'title' => ['type' => 'text']、
                'content' => ['type' => 'text']
            ]
        ]
    ]
];
$ response = $ client-> indices() - > create($ params);

上記のコードは、「my_index」と呼ばれるインデックスを作成し、「タイトル」および「コンテンツ」フィールドのテキストタイプのマッピングを定義します。ニーズに応じてフィールドとデータ型をカスタマイズできます。

ドキュメントを追加します

次に、データをインデックスに追加する必要があります。次のコードは、「タイトル」と「コンテンツ」フィールドをインデックスに含むドキュメントを追加する方法を示しています。

$ params = [
    'index' => 'my_index'、
    'body' => [
        「タイトル」=> 'サンプルタイトル'、
        'content' => 'contentの例
    ]
];
$ response = $ client-> index($ params);

このコードは、「my_index」インデックスに「タイトル」と「コンテンツ」フィールドを含むドキュメントを追加し、必要に応じてより多くのフィールドを追加できます。

検索クエリを作成します

データが追加されたら、検索クエリを作成してデータを取得できます。これが簡単な検索クエリの例です。

$ params = [
    'index' => 'my_index'、
    'body' => [
        「クエリ」=> [
            「一貫性のある」=> [
                「タイトル」=>「例」
            ]
        ]
    ]
];
$ response = $ client-> search($ params);
<p>foreach($ response [&#39;hits&#39;] [&#39;hits&#39;] as $ hit){<br>
echo $ hit [&#39;_ source&#39;] [&#39;title&#39;]。 "\ n";<br>
}<br>

このコードは、「タイトル」フィールドのマッチクエリを作成し、一致するドキュメントタイトルを出力します。

要約します

PHPとElasticSearchを組み合わせることにより、迅速かつ効率的に近い時間検索機能を可能にします。この記事では、ElasticSearchのインストールと構成からElasticSearchの接続、インデックスの作成、ドキュメントの追加、および検索操作の実行までの完全なプロセスについて説明します。この記事が、ElasticSearchをWebアプリケーションに統合し、スムーズな検索エクスペリエンスを実現する方法をよりよく理解できるようにすることを願っています。