Rumah >pembangunan bahagian belakang >tutorial php >Cara menggunakan Elasticsearch dan PHP untuk carian dan pengesyoran produk

Cara menggunakan Elasticsearch dan PHP untuk carian dan pengesyoran produk

王林
王林asal
2023-07-09 15:07:401628semak imbas

Cara menggunakan Elasticsearch dan PHP untuk carian dan pengesyoran produk

Pengenalan:
Dalam bidang e-dagang hari ini, sistem carian dan pengesyoran yang baik adalah sangat penting untuk pengguna. Elasticsearch ialah enjin carian sumber terbuka yang berkuasa dan fleksibel Digabungkan dengan PHP sebagai bahasa pembangunan bahagian belakang, ia boleh menyediakan carian produk yang cekap dan fungsi pengesyoran yang diperibadikan untuk tapak web e-dagang. Artikel ini akan memperkenalkan cara menggunakan Elasticsearch dan PHP untuk melaksanakan fungsi carian dan pengesyoran produk, serta melampirkan contoh kod yang sepadan.

1. Pasang dan konfigurasikan Elasticsearch
Pertama, kita perlu memasang dan mengkonfigurasi Elasticsearch. Anda boleh memuat turun versi terkini dari laman web rasmi Elasticsearch dan memasang serta mengkonfigurasinya mengikut dokumentasi rasmi. Selepas konfigurasi selesai, anda boleh mengesahkan sama ada Elasticsearch telah berjaya dimulakan dengan mengakses "http://localhost:9200".

2. Import data produk
Untuk mencari dan mengesyorkan produk, kami perlu mengimport beberapa data produk ke dalam Elasticsearch terlebih dahulu. Import data boleh dicapai menggunakan API RESTful Elasticsearch. Berikut ialah contoh kod yang menggunakan PHP untuk menghantar permintaan POST untuk mengimport data produk ke dalam 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;
?>

Kod di atas akan mengimport sekeping data produk ke dalam indeks "produk" dalam Elasticsearch. Anda boleh mengubah suai medan dalam tatasusunan $data mengikut keperluan untuk mengimport lebih banyak data produk.

3. Carian Produk
Seterusnya, kami akan memperkenalkan cara menggunakan Elasticsearch untuk carian produk. Berikut ialah contoh kod PHP mudah untuk melakukan carian padanan dalam tajuk dan penerangan produk:

<?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;
?>

Kod di atas akan mencari indeks "produk" untuk produk yang tajuknya mengandungi "iPhone" melalui API "_search" Elasticsearch. Anda boleh mengubah suai medan dan syarat pertanyaan dalam tatasusunan $query seperti yang diperlukan untuk melaksanakan fungsi carian produk yang lebih kompleks.

4. Pengesyoran diperibadikan
Selain fungsi carian produk, pengesyoran diperibadikan juga merupakan fungsi penting. Berikut ialah contoh kod PHP mudah untuk pengesyoran produk berdasarkan sejarah pembelian dan kelakuan menyemak imbas pengguna:

<?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;
?>

Kod di atas akan mengesyorkan berdasarkan produk dengan ID produk 1 dan berdasarkan produk melalui tajuk API "more_like_this" Elasticsearch dan penerangan untuk mencari produk yang serupa. Anda boleh mengubah suai ID produk dalam tatasusunan $like seperti yang diperlukan untuk melaksanakan pengesyoran berdasarkan produk yang berbeza.

Ringkasan:
Artikel ini memperkenalkan cara menggunakan Elasticsearch dan PHP untuk melaksanakan fungsi carian dan pengesyoran produk, serta menyediakan contoh kod yang sepadan. Dalam aplikasi sebenar, fungsi boleh dikembangkan dan dioptimumkan mengikut keperluan, seperti menambah syarat penapisan, peraturan pengisihan, dsb. Dengan memberikan permainan sepenuhnya kepada kelebihan Elasticsearch dan PHP, anda boleh menyediakan tapak web e-dagang dengan pengalaman pengguna yang lebih baik dan meningkatkan jualan.

Atas ialah kandungan terperinci Cara menggunakan Elasticsearch dan PHP untuk carian dan pengesyoran produk. 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