Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Petua pembangunan PHP: Bagaimana untuk melaksanakan carian pantas

Petua pembangunan PHP: Bagaimana untuk melaksanakan carian pantas

王林
王林asal
2023-08-17 11:22:441265semak imbas

Petua pembangunan PHP: Bagaimana untuk melaksanakan carian pantas

Petua Pembangunan PHP: Cara Melaksanakan Carian Pantas

Pengenalan:
Dalam banyak aplikasi web, fungsi carian adalah bahagian penting. Sama ada untuk tapak web e-dagang, laman web berita atau platform media sosial, fungsi carian yang pantas dan cekap boleh meningkatkan pengalaman pengguna dengan ketara. Artikel ini akan memperkenalkan beberapa kemahiran pembangunan PHP untuk membantu anda melaksanakan fungsi carian pantas.

1. Gunakan teknologi pengindeksan teks penuh
MySQL menyediakan fungsi pengindeksan teks penuh, yang boleh meningkatkan kecekapan carian. Pertama, pastikan versi MySQL anda menyokong pengindeksan teks penuh. Kemudian, buat indeks teks penuh pada medan jadual yang perlu dicari. Sebagai contoh, kami mempunyai jadual bernama products, yang mengandungi medan name Kami boleh mencipta indeks teks penuh menggunakan arahan berikut: products,其中包含一个字段name,我们可以使用以下命令创建全文索引:

ALTER TABLE products ADD FULLTEXT(name);

接下来,我们可以使用MATCH()AGAINST()函数在全文索引上进行搜索。例如,我们要搜索包含关键词手机

SELECT * FROM products WHERE MATCH (name) AGAINST ('手机');

Seterusnya, kita boleh. gunakan MATCH() dan AGAINST() berfungsi mencari pada indeks teks penuh. Sebagai contoh, jika kita ingin mencari produk yang mengandungi kata kunci telefon bimbit, kita boleh menggunakan pernyataan pertanyaan berikut:

$keyword = $_GET['keyword'];

$memcached = new Memcached();
$memcached->addServer('localhost', 11211);

$result = $memcached->get('search_' . $keyword);

if ($result) {
    echo '搜索结果来自缓存:<br>';
    foreach ($result as $item) {
        echo $item['name'] . '<br>';
    }
} else {
    // 从数据库中查询搜索结果
    $sql = "SELECT * FROM products WHERE name LIKE '%" . $keyword . "%'";
    $result = $db->query($sql);
    $arr = [];
    if ($result->num_rows > 0) {
        while ($row = $result->fetch_assoc()) {
            $arr[] = $row;
        }
        $memcached->set('search_' . $keyword, $arr, 3600); // 缓存结果一小时
        echo '搜索结果来自数据库:<br>';
        foreach ($arr as $item) {
            echo $item['name'] . '<br>';
        }
    } else {
        echo '抱歉,没有找到相关结果。';
    }
}

2. Menggunakan teknologi caching

Fungsi carian biasanya menghadapi masalah, iaitu , hasil carian mempunyai jumlah data yang besar, dan setiap carian memerlukan pertanyaan pangkalan data. Dalam kes ini, menggunakan teknologi caching akan meningkatkan kelajuan carian. Anda boleh menggunakan pelayan cache seperti Memcached atau Redis untuk menyimpan hasil carian dan mengurangkan bilangan pertanyaan ke pangkalan data.

Berikut ialah contoh kod yang menggunakan Memcached untuk cache hasil carian:

<!DOCTYPE html>
<html>
<head>
    <title>实时搜索</title>
    <script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
    <script>
        $(document).ready(function () {
            $("#keyword").keyup(function () {
                var keyword = $(this).val();
                $.ajax({
                    url: "search.php",
                    type: "POST",
                    data: {keyword: keyword},
                    success: function (data) {
                        $("#result").html(data);
                    }
                });
            });
        });
    </script>
</head>
<body>
    <input type="text" id="keyword" placeholder="请输入关键词">
    <div id="result"></div>
</body>
</html>

3 Gunakan AJAX untuk melaksanakan carian masa nyata

Untuk meningkatkan pengalaman pengguna carian, anda boleh menggunakan teknologi AJAX untuk melaksanakan masa nyata. cari. Apabila pengguna menaip kata kunci dalam kotak carian, JavaScript bahagian hadapan menghantar permintaan AJAX ke bahagian belakang, bahagian belakang mengembalikan hasil carian yang sepadan, dan kemudian bahagian hadapan memaparkan hasil carian kepada pengguna. Berikut ialah kod sampel carian masa nyata yang dilaksanakan menggunakan jQuery dan PHP:

// search.php
$keyword = $_POST['keyword'];

$sql = "SELECT * FROM products WHERE name LIKE '%" . $keyword . "%'";
$result = $db->query($sql);

if ($result->num_rows > 0) {
    while ($row = $result->fetch_assoc()) {
        echo $row['name'] . '<br>';
    }
} else {
    echo '抱歉,没有找到相关结果。';
}
rrreee
Ringkasan:

Apabila membangunkan fungsi carian aplikasi web, menggunakan teknologi seperti pengindeksan teks penuh, caching dan AJAX boleh meningkatkan kelajuan dengan ketara. carian dan pengalaman pengguna. Saya harap kemahiran pembangunan PHP yang diperkenalkan dalam artikel ini dapat membantu anda. 🎜

Atas ialah kandungan terperinci Petua pembangunan PHP: Bagaimana untuk melaksanakan carian pantas. 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