Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Gunakan PHP dan coreseek untuk melaksanakan fungsi carian beli-belah e-dagang yang cekap

Gunakan PHP dan coreseek untuk melaksanakan fungsi carian beli-belah e-dagang yang cekap

王林
王林asal
2023-08-07 08:42:29854semak imbas

Gunakan PHP dan Coreseek untuk melaksanakan fungsi carian beli-belah e-dagang yang cekap

Dalam industri e-dagang hari ini, fungsi carian digunakan secara meluas dalam laman web dan aplikasi beli-belah. Untuk memberikan pengalaman pengguna yang lebih baik, fungsi carian yang cekap adalah penting. Artikel ini akan memperkenalkan cara menggunakan PHP dan Coreseek untuk melaksanakan fungsi carian beli-belah e-dagang yang cekap, dan menyediakan contoh kod yang berkaitan.

1. Pengenalan kepada Coreseek

Coreseek ialah enjin carian teks penuh sumber terbuka yang dikembangkan dan dioptimumkan berdasarkan enjin carian teks penuh Sphinx. Coreseek mempunyai ciri prestasi tinggi, kestabilan tinggi dan kebolehskalaan, dan digunakan secara meluas dalam pelbagai tapak web dan aplikasi.

2. Pasang dan konfigurasikan Coreseek

  1. Pasang Sphinx dan Coreseek

Pertama, kita perlu memasang enjin carian Sphinx dan sambungan Coreseek. Anda boleh memuat turun versi stabil terkini dari laman web rasmi dan memasang serta mengkonfigurasinya mengikut dokumentasi rasmi.

  1. Konfigurasikan fail indeks

Sebelum menggunakan Coreseek, kita perlu mengkonfigurasi fail indeks untuk menentukan sumber data yang perlu dicari. Anda boleh menyimpan data yang anda perlukan untuk mencari dalam pangkalan data dan menggunakan alat yang disediakan oleh Coreseek untuk menjana fail indeks.

3. Gunakan PHP untuk melaksanakan operasi carian dengan Coreseek

  1. Sambung ke Coreseek

Dalam PHP, kami boleh menggunakan kelas SphinxAPI untuk menyambung ke Coreseek dan melaksanakan operasi carian. Pertama, kita perlu membuat instantiate objek SphinxAPI dan menetapkan parameter sambungan Coreseek.

// 连接到Sphinx
$sphinx = new SphinxAPI();
$sphinx->setServer("localhost", 9312);
  1. Tetapkan kata kunci carian

Seterusnya, kita perlu menetapkan kata kunci carian. Mod padanan boleh ditetapkan dengan memanggil kaedah SetMatchMode objek SphinxAPI.

// 设置匹配模式
$sphinx->SetMatchMode(SPH_MATCH_ALL);
// 设置搜索关键词
$keyword = "手机";
$sphinx->SetMatch($keyword);
  1. Lakukan operasi carian

Selepas melengkapkan persediaan, kami boleh memanggil kaedah Pertanyaan objek SphinxAPI untuk melaksanakan operasi carian. Kaedah Pertanyaan akan mengembalikan tatasusunan yang mengandungi hasil carian.

// 执行搜索操作
$result = $sphinx->Query("", "products");

Antaranya, parameter pertama ialah rentetan kosong, yang bermaksud menanyakan semua medan; parameter kedua ialah nama indeks, yang menentukan sumber data yang hendak dicari.

  1. Mengendalikan hasil carian

Hasil carian ialah tatasusunan yang mengandungi berbilang dokumen yang sepadan. Kita boleh menggunakan gelung foreach untuk mengulangi keputusan dan mengeluarkan maklumat yang sepadan.

// 处理搜索结果
foreach ($result["matches"] as $docid => $info) {
    // 获取商品信息
    $product = getProductById($info["id"]);
    
    // 输出商品名称和价格
    echo $product["name"] . " - " . $product["price"] . "元";
}

4 Contoh aplikasi

Di bawah ini kami mengambil laman web beli-belah e-dagang yang ringkas sebagai contoh untuk menunjukkan cara menggunakan PHP dan Coreseek untuk melaksanakan fungsi carian yang cekap.

  1. Struktur pangkalan data

Pertama, kami mencipta jadual pangkalan data untuk menyimpan maklumat produk.

CREATE TABLE `products` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `name` varchar(255) NOT NULL,
  `price` decimal(10,2) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
  1. Konfigurasi fail indeks

Kami menambah konfigurasi berikut dalam fail konfigurasi Coreseek untuk menentukan sumber data yang ingin kami cari.

source products
{
    type            = mysql
    sql_host        = localhost
    sql_user        = root
    sql_pass        = password
    sql_db          = database
    sql_port        = 3306

    sql_query       = 
        SELECT id, name, price 
        FROM products

    sql_attr_float  = price
}
  1. contoh kod PHP

Dalam kod PHP, kami mula-mula menyambung ke Sphinx, kemudian menetapkan kata kunci carian, dan melaksanakan operasi carian.

// 连接到Sphinx
$sphinx = new SphinxAPI();
$sphinx->setServer("localhost", 9312);

// 设置匹配模式
$sphinx->SetMatchMode(SPH_MATCH_ALL);
// 设置搜索关键词
$keyword = "手机";
$sphinx->SetMatch($keyword);

// 执行搜索操作
$result = $sphinx->Query("", "products");

// 处理搜索结果
foreach ($result["matches"] as $docid => $info) {
    // 获取商品信息
    $product = getProductById($info["id"]);
    
    // 输出商品名称和价格
    echo $product["name"] . " - " . $product["price"] . "元";
}

// 根据商品ID从数据库中获取商品信息
function getProductById($id) {
    // 从数据库中查询商品信息
    // 返回一个包含商品信息的数组
    return array("name" => "iPhone X", "price" => 8999);
}

Melalui langkah di atas, kami telah melaksanakan fungsi carian beli-belah e-dagang yang mudah. Pengguna boleh memasukkan kata kunci untuk mencari, dan sistem akan mengembalikan senarai produk yang berkaitan dengan kata kunci.

Ringkasan

Artikel ini memperkenalkan cara menggunakan PHP dan Coreseek untuk melaksanakan fungsi carian beli-belah e-dagang yang cekap. Dengan menyambung ke Coreseek, menetapkan kata kunci carian dan melaksanakan operasi carian, kami boleh mendapatkan senarai produk yang berkaitan dengan kata kunci. Fungsi carian sedemikian boleh memberikan pengalaman pengguna yang lebih baik dan meningkatkan kecekapan dan daya saing laman web dan aplikasi e-dagang.

Tapis jumlah perkataan Kandungan artikel mungkin tidak cukup terperinci Jika perlu, sila rujuk dokumen dan maklumat yang berkaitan.

Atas ialah kandungan terperinci Gunakan PHP dan coreseek untuk melaksanakan fungsi carian beli-belah e-dagang yang cekap. 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