Elasticsearch と PHP を使用して高性能のニュース推奨システムを構築する方法
要約:
ニュース推奨システムは、現代のインターネット アプリケーションに不可欠な部分になっています。ユーザーの興味や好みに基づいて、パーソナライズされたニュース コンテンツの推奨を提供できます。この記事では、Elasticsearch と PHP を使用して高パフォーマンスのニュース推奨システムを構築する方法を紹介し、関連するコード例を示します。
1. 準備
開始する前に、次のソフトウェアがインストールされていることを確認してください:
2. データ モデリング
まず、ニュース データのモデルを定義する必要があります。各ニュース項目には次の属性が必要です:
Elasticsearch のマッピング機能を使用して、このモデルを定義できます。以下はマッピング定義の例です:
PUT /news_index { "mappings": { "news": { "properties": { "title": { "type": "text" }, "content": { "type": "text" }, "date": { "type": "date" }, "category": { "type": "keyword" }, "keywords": { "type": "keyword" } } } } }
3. データのインポート
次のステップは、ニュース データを Elasticsearch にインポートすることです。このタスクを実行するために PHP スクリプトを作成できます。以下はサンプルコードです:
require 'vendor/autoload.php'; $client = ElasticsearchClientBuilder::create()->build(); $newsData = [ [ 'title' => '新闻标题1', 'content' => '新闻内容1', 'date' => '2021-01-01', 'category' => '科技', 'keywords' => ['人工智能', '机器学习'] ], // 更多新闻数据... ]; $params = []; foreach ($newsData as $news) { $params['body'][] = [ 'index' => [ '_index' => 'news_index', '_type' => 'news' ] ]; $params['body'][] = $news; } $response = $client->bulk($params);
4. 検索とレコメンデーション
データのインポートが完了したら、Elasticsearch が提供する検索機能を使用してニュースのレコメンデーションを実装できます。以下はサンプル コードです。
$params = [ 'index' => 'news_index', 'body' => [ 'query' => [ 'bool' => [ 'should' => [ ['match' => ['keywords' => '人工智能']], ['match' => ['category' => '科技']] ] ] ] ] ]; $response = $client->search($params); foreach ($response['hits']['hits'] as $hit) { // 处理每条搜索结果 }
上記のサンプル コードでは、複合クエリ (ブール クエリ) を構築します。これは、Should
句を使用して、次のいずれかが満たされている限り、条件は満たされています。このようにして、キーワードやカテゴリに基づいたニュースのレコメンド機能を実装できます。
結論:
Elasticsearch と PHP を使用して、高性能のニュース推奨システムを構築できます。この記事で提供されているコード例は、データ モデリング、データ インポート、検索および推奨機能の実装に Elasticsearch を使用する方法を示しています。この記事がニュース レコメンデーション システムの構築に役立つことを願っています。
以上がElasticsearch と PHP を使用して高性能ニュース レコメンデーション システムを構築する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。