PHP Elasticsearch を使用してインテリジェントなレコメンデーション機能を実装するにはどうすればよいですか?
スマートな推奨事項は、最新のアプリケーションにおける一般的かつ重要な機能の 1 つです。ユーザーの好み、行動、履歴データに基づいて、関連するコンテンツや製品を自動的に推奨することで、ユーザー エクスペリエンスを向上させ、双方向性を高めることができます。この記事では、PHP Elasticsearch を使用してインテリジェントなレコメンデーション機能を実装する方法を検討し、具体的なコード例を示します。
まず、ローカル環境に Elasticsearch をインストールして構成する必要があります。 Elasticsearch の公式 Web サイトから最新の安定バージョンをダウンロードし、公式ドキュメントのガイドラインに従ってインストールおよび設定できます。インストールが完了したら、Elasticsearch が正常に実行されており、http://localhost:9200 でアクセスできることを確認します。
コードを書き始める前に、インデックスを作成し、対応するマッピングを定義する必要があります。この例では、製品レコメンデーション機能を実装すると仮定して、「products」という名前のインデックスを作成できます。以下は、インデックスとマッピングを作成するためのサンプル コードです。
PUT /products { "mappings": { "properties": { "title": { "type": "text" }, "category": { "type": "keyword" }, "tags": { "type": "keyword" }, "price": { "type": "float" } } } }
実際のニーズに応じて、マッピングのフィールド タイプと属性を調整できます。
実際の使用では、Elasticsearch が検索して推奨できるように、インデックスに商品データを追加する必要があります。以下は、データを追加するためのサンプル コードです。
require 'vendor/autoload.php'; use ElasticsearchClientBuilder; $client = ClientBuilder::create()->build(); $params = [ 'index' => 'products', 'body' => [ ['index' => ['_index' => 'products']], ['title' => 'Product 1', 'category' => 'Category 1', 'tags' => ['tag1', 'tag2'], 'price' => 10.99], ['index' => ['_index' => 'products']], ['title' => 'Product 2', 'category' => 'Category 2', 'tags' => ['tag3', 'tag4'], 'price' => 20.99], // 添加更多商品数据... ] ]; $response = $client->bulk($params); // 检查添加是否成功 if ($response['errors']) { foreach($response['items'] as $item) { if ($item['index']['status'] !== 201) { echo "Failed to add product: " . $item['index']['error']['reason']; } } } else { echo "Products added successfully."; }
上記のサンプル コードでは、Elasticsearch が提供する PHP クライアント ライブラリ (Elasticsearch-PHP) を使用して Elasticsearch と対話します。まず、ClientBuilder
を使用して Elasticsearch クライアント インスタンスを作成します。次に、bulk
メソッドを使用して、商品データをインデックスにバッチで追加します。
データがインデックスに正常に追加されたら、インテリジェントな推奨アルゴリズムの実装を開始できます。
まず、コレクションのターゲット ユーザー (または現在のユーザー) が興味を持っている製品カテゴリ、タグ、またはその他の属性を決定する必要があります。その後、Elasticsearch のクエリ機能を使用して、関連アイテムを検索して返すことができます。ユーザーのタグに一致するアイテムを検索するためのサンプル コード スニペットを次に示します。
$params = [ 'index' => 'products', 'body' => [ 'query' => [ 'terms' => [ 'tags' => ['user_tag_1', 'user_tag_2'] ] ] ] ]; $response = $client->search($params); // 处理搜索结果 if ($response['hits']['total']['value'] > 0) { foreach ($response['hits']['hits'] as $hit) { echo $hit['_source']['title'] . ', ' . $hit['_source']['price'] . PHP_EOL; } } else { echo "No products found."; }
上記のサンプル コードでは、Elasticsearch の terms
クエリを使用して、ユーザーのタグに一致するアイテムを検索します。 $params
配列は検索条件とインデックス名を指定します。 search
メソッドを使用して検索を実行し、返された結果を処理します。
ユーザーの実際のニーズに応じて、複数フィールドの一致、範囲クエリなど、より複雑なクエリ条件を使用できます。 Elasticsearch は、実際のニーズに応じて調整できる豊富なクエリ構文と関数を提供します。
以下は、PHP Elasticsearch を使用してインテリジェントなレコメンデーション機能を実装する方法を示す完全な例です。
require 'vendor/autoload.php'; use ElasticsearchClientBuilder; $client = ClientBuilder::create()->build(); // 创建索引和映射 $params = [ 'index' => 'products', 'body' => [ "mappings" => [ "properties" => [ "title" => [ "type" => "text" ], "category" => [ "type" => "keyword" ], "tags" => [ "type" => "keyword" ], "price" => [ "type" => "float" ] ] ] ] ]; $client->indices()->create($params); // 添加数据到索引 $params = [ 'index' => 'products', 'body' => [ ['index' => ['_index' => 'products']], ['title' => 'Product 1', 'category' => 'Category 1', 'tags' => ['tag1', 'tag2'], 'price' => 10.99], ['index' => ['_index' => 'products']], ['title' => 'Product 2', 'category' => 'Category 2', 'tags' => ['tag3', 'tag4'], 'price' => 20.99], // 添加更多商品数据... ] ]; $client->bulk($params); // 执行智能推荐算法 $params = [ 'index' => 'products', 'body' => [ 'query' => [ 'terms' => [ 'tags' => ['user_tag_1', 'user_tag_2'] ] ] ] ]; $response = $client->search($params); // 处理搜索结果 if ($response['hits']['total']['value'] > 0) { foreach ($response['hits']['hits'] as $hit) { echo $hit['_source']['title'] . ', ' . $hit['_source']['price'] . PHP_EOL; } } else { echo "No products found."; }
上記の例では、 , まず「product」というインデックスを作成し、対応するマッピングを定義しました。次に、サンプル製品データをインデックスに追加しました。最後に、ユーザー タグに基づいて関連する製品を検索して返すインテリジェントな推奨アルゴリズムを実装します。
実際のニーズに応じてコードを調整し、ドキュメントの指示に従ってより詳細な構成とチューニングを実行してください。この記事が、PHP Elasticsearch を使用してインテリジェントなレコメンデーション機能を実装する方法を理解するのに役立つことを願っています。
以上がphp Elasticsearchを使用してインテリジェントなレコメンデーション機能を実装するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。