Pembangunan Carian PHP dan Manticore: Petua untuk Meningkatkan Kedudukan Hasil Carian

WBOY
Lepaskan: 2023-08-06 18:06:02
asal
965 orang telah melayarinya

PHP dan Pembangunan Carian Manticore: Petua untuk Meningkatkan Kedudukan Hasil Carian

Enjin carian ialah bahagian penting dalam aplikasi Internet moden. Kedudukan hasil carian secara langsung mempengaruhi pengalaman pengguna dan ketepatan carian. Dalam artikel ini, kami akan membincangkan petua tentang cara meningkatkan kedudukan hasil carian semasa pembangunan menggunakan PHP dan Carian Manticore.

  1. Pasang Manticore Search

Mula-mula, kita perlu memasang Manticore Search. Ia boleh dipasang pada Ubuntu melalui arahan berikut:

sudo apt-get install manticoresearch
Salin selepas log masuk

Selepas pemasangan selesai, mulakan perkhidmatan Manticore Search:

sudo service manticoresearch start
Salin selepas log masuk
  1. Penyediaan data

Pertama, kita perlu mengimport data ke dalam Manticore Search. Di sini kami akan menggunakan contoh mudah, dengan mengandaikan kami mempunyai tapak web e-dagang yang mengandungi maklumat berkaitan produk seperti nama produk, penerangan, harga, dll.

Untuk kemudahan demonstrasi, kami mencipta indeks bernama "produk" dan menambah beberapa sampel data:

<?php

// 连接Manticore Search服务
$dsn = 'mysql:host=127.0.0.1;port=9306';
$username = '';
$password = '';

$pdo = new PDO($dsn, $username, $password);

// 创建索引
$sql = "CREATE TABLE products (
    id INT(11) UNSIGNED AUTO_INCREMENT PRIMARY KEY,
    name VARCHAR(255) NOT NULL,
    description TEXT,
    price FLOAT(10,2) NOT NULL
) ENGINE = Manticore;";

$pdo->exec($sql);

// 添加示例数据
$productData = [
    ['name' => 'iPhone 12', 'description' => 'The latest iPhone model', 'price' => 999.99],
    ['name' => 'Samsung Galaxy S21', 'description' => 'Powerful Android phone', 'price' => 799.99],
    ['name' => 'Google Pixel 5', 'description' => 'Flagship Google phone', 'price' => 699.99],
];

foreach ($productData as $product) {
    $sql = "INSERT INTO products (name, description, price) VALUES (?, ?, ?)";
    $stmt = $pdo->prepare($sql);
    $stmt->execute([$product['name'], $product['description'], $product['price']]);
}

echo 'Data imported successfully!';
Salin selepas log masuk
  1. Melaksanakan carian asas

Seterusnya, mari kita laksanakan fungsi carian asas. Pengguna boleh mencari nama produk dan penerangan mengikut kata kunci dan mengembalikan senarai produk yang berkaitan. Kita boleh menggunakan fungsi carian teks penuh yang disediakan oleh Manticore Search untuk mencapai matlamat ini.

<?php

// 连接Manticore Search服务
$dsn = 'mysql:host=127.0.0.1;port=9306';
$username = '';
$password = '';

$pdo = new PDO($dsn, $username, $password);

// 执行搜索
$keyword = 'iPhone';
$sql = "SELECT * FROM products WHERE MATCH (:keyword)";
$stmt = $pdo->prepare($sql);
$stmt->bindValue(':keyword', $keyword);
$stmt->execute();

$results = $stmt->fetchAll(PDO::FETCH_ASSOC);

// 显示搜索结果
foreach ($results as $result) {
    echo 'Product Name: ' . $result['name'] . PHP_EOL;
    echo 'Description: ' . $result['description'] . PHP_EOL;
    echo 'Price: ' . $result['price'] . PHP_EOL;
    echo '------------------------' . PHP_EOL;  
}
Salin selepas log masuk
  1. Tingkatkan pengisihan hasil carian

Untuk menambah baik pengisihan hasil carian, kita boleh menggunakan fungsi pengisihan Carian Manticore. Kami boleh mengisih hasil carian mengikut medan yang berbeza, seperti harga, volum jualan, dsb.

Berikut ialah contoh pengisihan hasil carian berdasarkan harga produk:

<?php

// 连接Manticore Search服务
$dsn = 'mysql:host=127.0.0.1;port=9306';
$username = '';
$password = '';

$pdo = new PDO($dsn, $username, $password);

// 执行搜索
$keyword = 'iPhone';
$sql = "SELECT * FROM products WHERE MATCH (:keyword) ORDER BY price DESC";
$stmt = $pdo->prepare($sql);
$stmt->bindValue(':keyword', $keyword);
$stmt->execute();

$results = $stmt->fetchAll(PDO::FETCH_ASSOC);

// 显示搜索结果
foreach ($results as $result) {
    echo 'Product Name: ' . $result['name'] . PHP_EOL;
    echo 'Description: ' . $result['description'] . PHP_EOL;
    echo 'Price: ' . $result['price'] . PHP_EOL;
    echo '------------------------' . PHP_EOL;  
}
Salin selepas log masuk

Dalam contoh ini, kami mengisih harga dalam tertib menurun mengikut PESANAN MENGIKUT DESC harga. ORDER BY price DESC对价格进行降序排序。

除了价格,我们还可以根据其他字段进行排序,比如销量、评分等。只需相应地修改ORDER BY

Selain harga, kami juga boleh menyusun berdasarkan medan lain, seperti volum jualan, rating, dll. Cuma ubah suai klausa ORDER BY dengan sewajarnya.

Ringkasan

Artikel ini memperkenalkan cara menggunakan Carian PHP dan Manticore untuk membangunkan fungsi carian, dan menyediakan beberapa petua untuk meningkatkan kedudukan hasil carian. Melalui teknik ini, kami boleh melakukan pengisihan hasil carian yang disasarkan mengikut keperluan dan senario yang berbeza, meningkatkan pengalaman pengguna dan ketepatan carian.

Saya harap artikel ini dapat membantu anda menyelesaikan masalah yang anda hadapi semasa mengoptimumkan pengisihan hasil carian dalam pembangunan PHP. Semoga berjaya dengan usaha pembangunan anda! 🎜

Atas ialah kandungan terperinci Pembangunan Carian PHP dan Manticore: Petua untuk Meningkatkan Kedudukan Hasil Carian. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!