ホームページ  >  記事  >  バックエンド開発  >  PHP と Elasticsearch を使用して検索候補を実装する方法

PHP と Elasticsearch を使用して検索候補を実装する方法

WBOY
WBOYオリジナル
2023-07-17 12:34:391032ブラウズ

PHP と Elasticsearch を使用して検索サジェスト機能を実装する方法

今日のインターネット情報爆発の時代において、検索エンジンは私たちが情報を入手する重要な方法の 1 つとなっています。しかし、ユーザーが検索キーワードを入力する際、スペルミスや曖昧な検索が発生することが多く、ユーザーが興味を持ちそうなキーワードを提示する検索サジェスト機能が必要となり、ユーザーエクスペリエンスを向上させることができます。この記事では、PHP と Elasticsearch を使用して検索候補機能を実装する方法と、対応するコード例を紹介します。

まず、Elasticsearch をインストールして構成する必要があります。 Elasticsearch 公式 Web サイトからダウンロードしてインストールし、elasticsearch.yml ファイルを変更してクラスター名、バインディング IP、その他の構成を設定できます。 Elasticsearch を起動した後、curl コマンドまたは Elasticsearch が提供する PHP クライアントを介して Elasticsearch に接続し、関連する操作を実行できます。

次に、PHP を使用して、検索候補機能を実装するコードを記述します。まず、Elasticsearch の PHP クライアント ライブラリをインポートする必要があります。依存関係の管理には Composer を使用できます。プロジェクトのルート ディレクトリにあるcomposer.json ファイルにコンテンツ

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

を追加し、composer install コマンドを実行して依存関係をインストールします。

以下は、Elasticsearch に接続し、関連する設定をセットアップするための簡単な PHP コード例です:

<?php
require 'vendor/autoload.php';

$client = ElasticsearchClientBuilder::create()->build();

次に、Elasticsearch インデックスを作成し、サンプル データを追加する必要があります。次のコード例は、suggests という名前のインデックスを作成し、いくつかのドキュメントを追加する方法を示しています。

<?php
$params = [
    'index' => 'suggestion',
    'body' => [
        'mappings' => [
            'properties' => [
                'text' => [
                    'type' => 'text'
                ]
            ]
        ]
    ]
];

$response = $client->indices()->create($params);

$params = [
    'index' => 'suggestion',
    'body'  => [
        ['text' => 'apple'],
        ['text' => 'banana'],
        ['text' => 'cherry'],
        ['text' => 'durian']
    ]
];

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

これで、検索候補機能を実装するコードを作成できます。以下は、検索候補の簡単な PHP コード例です。

<?php
$searchText = $_GET['searchText'];

$params = [
    'index' => 'suggestion',
    'body'  => [
        'suggest' => [
            'suggestion' => [
                'prefix' => $searchText,
                'completion' => [
                    'field' => 'text',
                    'size' => 10
                ]
            ]
        ]
    ]
];

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

$suggestions = $response['suggest']['suggestion'][0]['options'];

foreach ($suggestions as $suggest) {
    echo $suggest['text'] . "
";
}

上記のコードでは、$_GET['searchText'] を通じてユーザーが入力した検索キーワードを取得し、 Elasticsearch を使用して、候補機能を検索して、一致する候補の単語を取得します。最後に、得られたサジェストワードをユーザに出力する。

上記のコード例を通じて、Elasticsearch に基づいた検索候補機能を簡単に実装できます。もちろん、実際のニーズに基づいて、検索候補のロジックとインターフェイスをさらに最適化し、ユーザー エクスペリエンスを向上させることができます。

要約すると、この記事では、PHP と Elasticsearch を使用して検索候補機能を実装する方法を紹介し、対応するコード例を示します。この記事を通じて、検索提案の基本原理と実装方法を理解していただき、実際のプロジェクトに適用および展開できるようにしていただければ幸いです。

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

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