Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Menggunakan Elasticsearch dalam PHP untuk analisis tingkah laku pengguna dan cadangan

Menggunakan Elasticsearch dalam PHP untuk analisis tingkah laku pengguna dan cadangan

王林
王林asal
2023-10-03 08:04:44917semak imbas

PHP 中使用 Elasticsearch 进行用户行为分析与推荐

Menggunakan Elasticsearch dalam PHP untuk analisis dan pengesyoran tingkah laku pengguna

Ikhtisar:
Dengan pembangunan berterusan Internet, analisis tingkah laku pengguna dan pengesyoran diperibadikan telah menjadi bahagian yang amat diperlukan dalam pelbagai bidang aplikasi utama. Sebagai enjin carian dan analisis teks penuh yang berprestasi tinggi dan diedarkan, Elasticsearch digunakan secara meluas dalam analisis tingkah laku pengguna dan sistem pengesyoran diperibadikan kerana keupayaan carian yang berkuasa dan kebolehskalaan yang fleksibel. Artikel ini akan memperkenalkan cara menggunakan PHP untuk menulis kod dan menggabungkannya dengan Elasticsearch untuk melaksanakan analisis tingkah laku pengguna dan fungsi pengesyoran yang diperibadikan.

1 Pasang dan konfigurasikan Elasticsearch
Pertama, kita perlu memasang Elasticsearch dan mengkonfigurasinya dengan sewajarnya. Langkah-langkah khusus adalah seperti berikut:

Langkah 1: Muat turun Elasticsearch
Muat turun versi yang sesuai untuk sistem pengendalian anda daripada tapak web rasmi (https://www.elastic.co/cn/downloads/elasticsearch), dan nyahzipkannya ke direktori yang ditentukan.

Langkah 2: Konfigurasikan Elasticsearch
Dalam fail konfigurasi Elasticsearch elasticsearch.yml, anda boleh menetapkan nama kluster, nama nod, alamat pendengaran dan parameter lain. elasticsearch.yml中,可以设置集群的名称、节点名称、监听地址等参数。

Step 3:启动Elasticsearch
通过命令行进入到Elasticsearch的安装目录,执行bin/elasticsearch命令启动Elasticsearch。

二、使用PHP连接Elasticsearch
接下来,我们需要使用PHP连接到Elasticsearch,并进行数据的索引和搜索操作。我们可以使用Elasticsearch的官方PHP客户端包——Elasticsearch PHP Client。

Step 1:安装Elasticsearch PHP Client
使用Composer进行安装,运行命令:composer require elasticsearch/elasticsearch

Step 2:编写PHP代码
以下是一个简单的PHP代码示例,用于连接到Elasticsearch,并执行索引和搜索操作:

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

use ElasticsearchClientBuilder;

// 连接到本地的Elasticsearch实例
$client = ClientBuilder::create()->setHosts(['127.0.0.1'])->build();

// 索引一条用户行为数据
$params = [
    'index' => 'user_behavior',
    'type' => 'click',
    'body' => [
        'user_id' => 1,
        'item_id' => 1001,
        'timestamp' => time()
    ]
];
$response = $client->index($params);

// 搜索与给定用户行为相关的推荐结果
$params = [
    'index' => 'user_behavior',
    'type' => 'click',
    'body' => [
        'query' => [
            'match' => [
                'user_id' => 1
            ]
        ]
    ]
];
$response = $client->search($params);

// 处理搜索结果
foreach ($response['hits']['hits'] as $hit) {
    echo $hit['_source']['item_id'] . PHP_EOL;
}
?>

以上代码示例中,我们首先通过ClientBuilder来创建一个用于与Elasticsearch建立连接的客户端对象$client,然后使用$clientindex方法来索引一条用户行为数据,接着使用search

Langkah 3: Mulakan Elasticsearch

Masukkan direktori pemasangan Elasticsearch melalui baris arahan, dan laksanakan perintah bin/elasticsearch untuk memulakan Elasticsearch.

2 Gunakan PHP untuk menyambung ke Elasticsearch
    Seterusnya, kita perlu menggunakan PHP untuk menyambung ke Elasticsearch dan melakukan pengindeksan data dan operasi carian. Kami boleh menggunakan pakej pelanggan PHP rasmi Elasticsearch - Pelanggan PHP Elasticsearch.
  1. Langkah 1: Pasang Elasticsearch PHP Client

    Gunakan Komposer untuk memasang, jalankan arahan: composer require elasticsearch/elasticsearch
  2. Langkah 2: Tulis kod PHP

    Berikut ialah contoh kod PHP mudah untuk Connect kepada Elasticsearch dan melaksanakan operasi pengindeksan dan carian:

    $params = [
     'index' => 'user_behavior',
     'type' => 'click',
     'body' => [
         'query' => [
             'match' => [
                 'item_id' => 1001
             ]
         ]
     ]
    ];
    $response = $client->count($params);
    $clickCount = $response['count'];
  3. Dalam contoh kod di atas, kami mula-mula mencipta objek klien $client untuk mewujudkan sambungan dengan Elasticsearch melalui kod ClientBuilder> , kemudian gunakan kaedah index $client untuk mengindeks sekeping data tingkah laku pengguna, dan kemudian gunakan kaedah search untuk mencari sesuatu kelakuan pengguna.
  4. 3. Gunakan Elasticsearch untuk analisis dan pengesyoran tingkah laku

    Dalam proses pengumpulan berterusan data tingkah laku pengguna, kami boleh menggunakan fungsi pengagregatan kaya (Aggs) Elasticsearch dan pertanyaan carian yang kompleks untuk menjalankan analisis dan pengesyoran tingkah laku pengguna. Berikut ialah beberapa contoh fungsi yang biasa digunakan:

Kira bilangan kali produk diklik:

$params = [
 'index' => 'user_behavior',
 'type' => 'click',
 'body' => [
     'aggs' => [
         'top_hits' => [
             'terms' => [
                 'field' => 'item_id',
                 'order' => ['click_count' => 'desc']
             ],
             'aggs' => [
                 'click_count' => [
                     'sum' => [
                         'field' => 'click_count'
                     ]
                 ]
             ]
         ]
     ]
 ]
];
$response = $client->search($params);
$topHits = $response['aggregations']['top_hits']['buckets'];

🎜 Kira produk dengan klik terbanyak oleh pengguna: 🎜
$params = [
 'index' => 'user_behavior',
 'type' => 'click',
 'body' => [
     'query' => [
         'match' => [
             'user_id' => 1
         ]
     ],
     'size' => 0,
     'aggs' => [
         'top_hits' => [
             'terms' => [
                 'field' => 'item_id',
                 'order' => ['click_count' => 'desc']
             ],
             'aggs' => [
                 'click_count' => [
                     'sum' => [
                         'field' => 'click_count'
                     ]
                 ]
             ]
         ]
     ]
 ]
];
$response = $client->search($params);
$topHits = $response['aggregations']['top_hits']['buckets'];
🎜🎜🎜syor mengikut klikan peribadi sejarah: 🎜 rrreee🎜🎜🎜Contoh di atas hanya menunjukkan fungsi asas Elasticsearch dan PHP Dalam aplikasi sebenar, pertanyaan pengagregatan dan operasi penapisan yang lebih kompleks boleh dilakukan mengikut keperluan tertentu. 🎜🎜Kesimpulan: 🎜Melalui pengenalan artikel ini, kami telah mempelajari cara menggunakan PHP untuk menulis kod dan menggabungkannya dengan Elasticsearch untuk melaksanakan analisis tingkah laku pengguna dan cadangan yang diperibadikan. Fungsi ini boleh membantu kami memahami tingkah laku pengguna dengan lebih baik, mengoptimumkan pengalaman pengguna dan menyediakan perkhidmatan pengesyoran yang diperibadikan. Kami percaya bahawa melalui pembelajaran dan amalan mendalam yang berterusan, kami boleh menggunakan Elasticsearch dan teknologi lain yang berkaitan dengan lebih fleksibel untuk membina sistem analisis dan pengesyoran tingkah laku pengguna yang lebih berkuasa. 🎜

Atas ialah kandungan terperinci Menggunakan Elasticsearch dalam PHP untuk analisis tingkah laku pengguna dan cadangan. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn