Membangunkan fungsi cadangan carian masa nyata menggunakan PHP dan Carian Manticore
Pengenalan:
Dalam aplikasi Internet moden, fungsi cadangan carian masa nyata telah menjadi sangat biasa. Apabila pengguna memasukkan kata kunci dalam kotak carian, sistem secara automatik boleh menggesa cadangan carian yang berkaitan, menjadikannya lebih mudah untuk pengguna mencari kandungan yang mereka inginkan. Artikel ini akan memperkenalkan cara untuk membangunkan fungsi cadangan carian masa nyata menggunakan PHP dan Carian Manticore.
1. Apakah itu Manticore Search?
Manticore Search ialah enjin carian teks penuh sumber terbuka yang dibangunkan berdasarkan Sphinx. Manticore Search menyediakan fungsi carian teks penuh dan halaman muka surat berprestasi tinggi, dan menyokong kemas kini indeks masa nyata. Dalam artikel ini, kami akan memanfaatkan Carian Manticore untuk melaksanakan cadangan carian masa nyata.
2. Persediaan
Sebelum memulakan pembangunan, kita perlu memasang Manticore Search dan sambungan PHP sphinx. Untuk langkah pemasangan khusus, sila rujuk dokumentasi rasmi Carian Manticore.
3. Cipta indeks Carian Manticore
Pertama, kami perlu mencipta indeks Carian Manticore untuk menyimpan data cadangan carian kami. Di sini kami menganggap bahawa kami sedang mencari nama pengguna.
source suggest { type = mysql sql_host = localhost sql_user = your_username sql_pass = your_password sql_db = your_database sql_port = 3306 sql_query_pre = SET NAMES utf8 sql_query = SELECT name, weight() AS weight FROM users } index suggest_index { source = suggest path = /path/to/suggest_index morphology = none min_infix_len = 1 }
Anda perlu mengubah suai maklumat sambungan pangkalan data dan laluan yang sepadan di sini.
$ indexer --config suggest.conf --all --rotate
4 Tulis kod PHP
Seterusnya, kita perlu menulis kod PHP untuk melaksanakan fungsi cadangan carian masa nyata.
<?php $host = 'localhost'; $port = 9306; $index = 'suggest_index'; $cl = new SphinxClient(); $cl->SetServer($host, $port); $cl->SetConnectTimeout(1); // 设置连接超时时间 $cl->SetArrayResult(true); // 将结果转换为数组
<?php $input = $_GET['q']; // 获取用户输入的关键字
<?php $res = $cl->Query($input, $index);
<?php $data = []; if ($res && $res['total']) { foreach ($res['matches'] as $match) { $data[] = ['name' => $match['attrs']['name']]; } } echo json_encode($data);
5. Kod bahagian hadapan
Akhir sekali, kita perlu menulis kod bahagian hadapan untuk menghantar permintaan ke bahagian belakang PHP dan menerima hasil cadangan carian.
<!DOCTYPE html> <html> <head> <title>实时搜索建议</title> <script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.6.0/jquery.min.js"></script> </head> <body> <input type="text" id="search-input" placeholder="请输入搜索关键字"> <ul id="search-suggestions"></ul> <script> $(function() { var timer; $('#search-input').on('input', function() { clearTimeout(timer); var query = $(this).val(); timer = setTimeout(function() { $.get('suggest.php', { q: query }, function(data) { var suggestions = ''; $.each(data, function(_, item) { suggestions += '<li>' + item.name + '</li>'; }); $('#search-suggestions').html(suggestions); }); }, 300); }); }); </script> </body> </html>
6. Ringkasan
Dengan menggunakan Carian PHP dan Manticore, kami boleh melaksanakan fungsi cadangan carian masa nyata dengan mudah. Ini boleh meningkatkan pengalaman carian pengguna dan membantu pengguna mencari perkara yang mereka cari dengan lebih cepat. Semoga artikel ini dapat membantu anda!
Atas ialah kandungan terperinci Bangunkan cadangan carian masa nyata menggunakan PHP dan Carian Manticore. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!