ホームページ  >  記事  >  バックエンド開発  >  Elasticsearch と PHP を使用して製品の検索と推奨を行う方法

Elasticsearch と PHP を使用して製品の検索と推奨を行う方法

王林
王林オリジナル
2023-07-09 15:07:401587ブラウズ

製品の検索と推奨に Elasticsearch と PHP を使用する方法

はじめに:
今日の電子商取引分野では、ユーザーにとって優れた検索および推奨システムが非常に重要です。 Elasticsearch は、強力かつ柔軟なオープンソースの検索エンジンであり、バックエンド開発言語として PHP と組み合わせることで、電子商取引 Web サイトに効率的な商品検索とパーソナライズされたレコメンデーション機能を提供できます。この記事では、ElasticsearchとPHPを使って商品検索やレコメンド機能を実装する方法と、対応するコード例を紹介します。

1. Elasticsearch のインストールと構成
まず、Elasticsearch をインストールして構成する必要があります。 Elasticsearch 公式 Web サイトから最新バージョンをダウンロードし、公式ドキュメントに従ってインストールおよび設定できます。設定完了後、「http://localhost:9200」にアクセスすると、Elasticsearchが正常に起動したかを確認できます。

2. 製品データのインポート
製品を検索して推奨するには、まずいくつかの製品データを Elasticsearch にインポートする必要があります。データのインポートは、Elasticsearch の RESTful API を使用して実現できます。以下は、PHP を使用して POST リクエストを送信し、商品データを Elasticsearch にインポートするサンプル コードです。

<?php
$ch = curl_init();

$data = array(
    'title' => 'iPhone 12',
    'description' => 'The latest iPhone model',
    'price' => 999,
    'category' => 'Electronics',
);

$url = 'http://localhost:9200/products/_doc/1';
$json_data = json_encode($data);

curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'POST');
curl_setopt($ch, CURLOPT_POSTFIELDS, $json_data);

$response = curl_exec($ch);

curl_close($ch);

echo $response;
?>

上記のコードは、商品データの一部を Elasticsearch の「products」インデックスにインポートします。必要に応じて $data 配列のフィールドを変更し、さらに多くの製品データをインポートできます。

3. 製品検索
次に、製品検索に Elasticsearch を使用する方法を紹介します。以下は、製品タイトルと説明の一致検索の簡単な PHP コード例です。

<?php
$ch = curl_init();

$query = array(
    'query' => array(
        'match' => array(
            'title' => 'iPhone'
        )
    )
);

$url = 'http://localhost:9200/products/_search';
$json_query = json_encode($query);

curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'GET');
curl_setopt($ch, CURLOPT_POSTFIELDS, $json_query);

$response = curl_exec($ch);

curl_close($ch);

echo $response;
?>

上記のコードは、Elasticsearch の "_search" API Products を介して、"iPhone" を含むタイトルの "product" インデックスを検索します。必要に応じて $query 配列のフィールドとクエリ条件を変更し、より複雑な製品検索機能を実装できます。

4. パーソナライズされたレコメンデーション
製品検索機能に加えて、パーソナライズされたレコメンデーションも重要な機能です。以下は、ユーザーの購入履歴と閲覧行動に基づいて製品を推奨する簡単な PHP コードの例です。

<?php
$ch = curl_init();

$query = array(
    'query' => array(
        'more_like_this' => array(
            'fields' => array('title', 'description'),
            'like' => array(
                array(
                    '_index' => 'products',
                    '_id' => '1'
                )
            ),
            'min_term_freq' => 1,
        )
    )
);

$url = 'http://localhost:9200/products/_search';
$json_query = json_encode($query);

curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'GET');
curl_setopt($ch, CURLOPT_POSTFIELDS, $json_query);

$response = curl_exec($ch);

curl_close($ch);

echo $response;
?>

上記のコードは、製品 ID 1 に基づいて製品を推奨し、Elasticsearch の「more_like_this」を使用します。API は類似の製品を検索します。タイトルと説明に基づいて。必要に応じて $like 配列の製品 ID を変更し、さまざまな製品に基づいた推奨事項を実装できます。

概要:
この記事では、Elasticsearch と PHP を使用して製品検索とレコメンデーション機能を実装する方法を紹介し、対応するコード例を示します。実際のアプリケーションでは、フィルタ条件の追加や並べ替えルールの追加など、必要に応じて機能の拡張や最適化が可能です。 Elasticsearch と PHP の利点を最大限に活用することで、より優れたユーザー エクスペリエンスを EC サイトに提供し、売上を向上させることができます。

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

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