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 ('手机');
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 '抱歉,没有找到相关结果。'; } }
<!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>
// 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 '抱歉,没有找到相关结果。'; }
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!