ホームページ  >  記事  >  バックエンド開発  >  Elasticsearch と PHP を使用して高性能ニュース レコメンデーション システムを構築する方法

Elasticsearch と PHP を使用して高性能ニュース レコメンデーション システムを構築する方法

PHPz
PHPzオリジナル
2023-07-07 16:30:081330ブラウズ

Elasticsearch と PHP を使用して高性能のニュース推奨システムを構築する方法

要約:
ニュース推奨システムは、現代のインターネット アプリケーションに不可欠な部分になっています。ユーザーの興味や好みに基づいて、パーソナライズされたニュース コンテンツの推奨を提供できます。この記事では、Elasticsearch と PHP を使用して高パフォーマンスのニュース推奨システムを構築する方法を紹介し、関連するコード例を示します。

1. 準備
開始する前に、次のソフトウェアがインストールされていることを確認してください:

  1. Elasticsearch: これは、ストレージと取得のためのリアルタイムの分散検索および分析エンジンです。ニュースデータ。
  2. PHP: PHP を使用して、Elasticsearch と対話するコードを作成します。

2. データ モデリング
まず、ニュース データのモデルを定義する必要があります。各ニュース項目には次の属性が必要です:

  1. タイトル: ニュースのタイトル。
  2. Content (コンテンツ): ニュースのテキストコンテンツ。
  3. Date (日付): ニュースがリリースされた日付。
  4. カテゴリ: スポーツ、テクノロジーなど、ニュースが属するカテゴリ。
  5. キーワード: ニューストピックを説明するキーワード。

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 サイトの他の関連記事を参照してください。

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