ホームページ >バックエンド開発 >PHPチュートリアル >PHP と Elasticsearch を使用して人間らしい検索エクスペリエンスを実現する方法

PHP と Elasticsearch を使用して人間らしい検索エクスペリエンスを実現する方法

WBOY
WBOYオリジナル
2023-07-18 17:31:461193ブラウズ

PHP と Elasticsearch を使用して人間らしい検索エクスペリエンスを実現する方法

はじめに:
今日の情報爆発の時代では、Web サイトやアプリケーションにとって効率的な検索機能が重要になっています。 Elasticsearch は、高速、スケーラブル、柔軟な強力なオープンソース検索エンジンであり、さまざまなシナリオで広く使用されています。 PHP は広く使用されている開発言語であり、Elasticsearch と対話するための多くのツールとライブラリを提供しており、人間らしい検索エクスペリエンスの実現に役立ちます。この記事では、PHP と Elasticsearch を使用して、シンプルで効率的な検索機能を構築する方法を説明します。

1. Elasticsearch のインストールとセットアップ
まず、Elasticsearch をローカルまたはリモート サーバーにインストールする必要があります。具体的なインストール手順については、Elasticsearch の公式ドキュメントを参照してください。インストールが完了したら、新しいインデックスを作成し、テスト データを追加する必要があります。

  1. 新しいインデックスの作成

    PUT /my_index
  2. テスト データの追加

    POST /my_index/_doc
    {
      "title": "Elasticsearch入门指南",
      "author": "张三",
      "content": "本文介绍了Elasticsearch的基本概念和使用方法。"
    }
    
    POST /my_index/_doc
    {
      "title": "PHP和Elasticsearch的集成",
      "author": "李四",
      "content": "本文讲解了如何使用PHP和Elasticsearch构建一个简单而高效的搜索功能。"
    }

2. インストールと構成PHP 開発環境
PHP コードの作成を開始する前に、PHP 環境に Elasticsearch との対話に必要な拡張機能がインストールされ、正しく設定されていることを確認する必要があります。

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

    composer require elasticsearch/elasticsearch
  2. PHP ファイルを作成し、Elasticsearch クライアント ライブラリを導入します

    require 'vendor/autoload.php';
    use ElasticsearchClientBuilder;

3. PHP 検索コードを作成する
次に、検索操作を実行し、人間味のある検索エクスペリエンスを実現するための PHP コードを作成します。

  1. Elasticsearch への接続

    $client = ClientBuilder::create()->build();
  2. 検索操作の実行

    $params = [
      'index' => 'my_index',
      'body'  => [
     'query' => [
       'match' => [
         'content' => 'Elasticsearch'
       ]
     ]
      ]
    ];
    
    $response = $client->search($params);
  3. 検索結果の処理

    foreach ($response['hits']['hits'] as $hit) {
     echo $hit['_source']['title'] . ' - ' . $hit['_source']['author'] . "<br>";
     // 输出:Elasticsearch入门指南 - 张三
     // 输出:PHP和Elasticsearch的集成 - 李四
    }

4. 検索エクスペリエンスの向上

  1. ページング機能
    検索結果に複数のページが含まれる場合は、Elasticsearch の from# を使用できます。 ## パラメーターと size パラメーターは、ページング機能を実装するために使用されます。検索パラメータのコードを次のように変更します。

    $params = [
      'index' => 'my_index',
      'body' => [
     'from' => 0,
     'size' => 10,
     'query' => [
       'match' => [
         'content' => 'Elasticsearch'
       ]
     ]
      ]
    ];
    
    $response = $client->search($params);

  2. 検索キーワードの強調表示

    検索結果の読みやすさを向上させるために、Elasticsearch の強調表示機能を使用して検索キーワードを強調表示できます。 。検索パラメータ コードを次のように変更します。

    $params = [
      'index' => 'my_index',
      'body'  => [
     'query' => [
       'match' => [
         'content' => 'Elasticsearch'
       ]
     ],
     'highlight' => [
       'fields' => [
         'content' => new stdClass()
       ]
     ]
      ]
    ];
    $response = $client->search($params);

  3. Sort function

    検索結果を特定のフィールドで並べ替える必要がある場合は、Elasticsearch の
    sort パラメータを使用できます。これを達成するために。検索パラメーター コードを次のように変更します。

    $params = [
      'index' => 'my_index',
      'body'  => [
     'query' => [
       'match' => [
         'content' => 'Elasticsearch'
       ]
     ],
     'sort' => [
       'title' => 'asc' // 按标题升序排序
     ]
      ]
    ];
    $response = $client->search($params);

5. 概要

この記事では、PHP と Elasticsearch を使用して人間らしい検索エクスペリエンスを実現する方法を紹介します。 Elasticsearch をインストール、セットアップ、テスト データの追加によって準備し、PHP で検索をコーディングし、ページング、強調表示、並べ替え機能などの検索エクスペリエンスを向上させました。この記事が、検索機能を改善したいと考えている開発者にとって役立つことを願っています。

以上がPHP と Elasticsearch を使用して人間らしい検索エクスペリエンスを実現する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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