PHP と Elasticsearch を通じて関連する検索機能を実装する方法

WBOY
リリース: 2023-07-17 08:48:01
オリジナル
913 人が閲覧しました

PHP および Elasticsearch を通じて関連する検索機能を実装する方法

概要:
最新の Web アプリケーションでは、検索機能は非常に重要な部分です。従来のデータベースの全文検索と比較して、Elasticsearch は強力なオープンソース検索エンジンとして、より柔軟で効率的な検索機能を備えています。この記事では、PHP と Elasticsearch を使用して関連する検索機能を実装する方法を紹介します。

  1. 環境セットアップ
    始める前に、PHP と Elasticsearch が正しくインストールされていることを確認する必要があります。 PHP の公式 Web サイトおよび Elasticsearch の公式 Web サイトからダウンロードしてインストールできます。さらに、Elasticsearch の PHP クライアント ライブラリである Elasticsearch-PHP もインストールする必要があります。 Composer を通じてインストールし、次のコマンドを実行します:

    composer require elasticsearch/elasticsearch
    ログイン後にコピー
  2. インデックスの作成
    Elasticsearch を使用して検索する前に、まずインデックスを作成する必要があります。インデックスは基本単位です。データの保存と整理に使用されます。インデックスは、Elasticsearch-PHP が提供する API を通じて簡単に作成および管理できます。以下は、インデックスを作成し、フィールド マッピングを定義するためのサンプル コードです。

    require_once 'vendor/autoload.php';
    
    $client = ElasticsearchClientBuilder::create()->build();
    
    $params = [
     'index' => 'my_index',
     'body' => [
         'mappings' => [
             'properties' => [
                 'title' => [
                     'type' => 'text',
                     'analyzer' => 'standard'
                 ],
                 'content' => [
                     'type' => 'text',
                     'analyzer' => 'standard'
                 ],
             ]
         ]
     ]
    ];
    
    $response = $client->indices()->create($params);
    ログイン後にコピー
  3. データの書き込み
    インデックスの作成が完了したら、後続のためにデータを Elasticsearch に書き込む必要があります。検索を使用します。データの書き込みは、単純な HTTP リクエストを通じて実行できます。以下は、Elasticsearch インデックスに記事を書き込むサンプル コードです。

    $params = [
     'index' => 'my_index',
     'id' => 1,
     'body' => [
         'title' => 'Elasticsearch相关搜索',
         'content' => 'Elasticsearch是一种强大的搜索引擎,可以实现高效的相关搜索功能。',
     ]
    ];
    
    $response = $client->index($params);
    ログイン後にコピー
  4. 検索の実行
    データの書き込みが完了したら、検索操作を実行できます。 Elasticsearch は、さまざまなタイプの検索用の豊富な API を提供し、一致クエリ、フレーズ クエリ、範囲クエリなどを含むさまざまなクエリ方法をサポートします。関連検索を実行するサンプル コードを次に示します。

    $params = [
     'index' => 'my_index',
     'body' => [
         'query' => [
             'match' => [
                 'content' => '搜索引擎',
             ]
         ]
     ]
    ];
    
    $response = $client->search($params);
    ログイン後にコピー
  5. 検索結果の取得
    検索操作を実行した後、$response を通じて検索結果を取得できます。検索結果は、一致するドキュメントのリストと関連スコア情報を含む JSON 形式で返されます。以下は、検索結果を走査して出力するサンプル コードです:

    foreach ($response['hits']['hits'] as $hit) {
     echo 'ID: ' . $hit['_id'] . ', Score: ' . $hit['_score'] . ', Title: ' . $hit['_source']['title'] . PHP_EOL;
    }
    ログイン後にコピー

概要:
この記事の導入を通じて、PHP と Elasticsearch を使用して次のことを行う方法を学びました。関連する検索機能を実装します。まず、PHP および Elasticsearch 環境をインストールして構成し、次にインデックスを作成してデータを書き込む必要があります。最後に、Elasticsearch-PHP が提供する API を使用して、関連する検索を実行し、検索結果を取得します。この記事のガイダンスを通じて、誰もが関連する検索機能を開発するための基本的な知識をすでに持っていると思います。実際の開発では、ニーズに応じて検索クエリのパラメーターと結果の表示方法をさらに最適化し、より良い検索エクスペリエンスを提供できます。

以上がPHP と Elasticsearch を通じて関連する検索機能を実装する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!