Rumah >pembangunan bahagian belakang >tutorial php >Laksanakan carian penyiapan automatik menggunakan PHP dan Redis

Laksanakan carian penyiapan automatik menggunakan PHP dan Redis

WBOY
WBOYasal
2023-05-17 08:00:231539semak imbas

Dalam pembangunan tapak web moden, fungsi carian adalah penting. Walau bagaimanapun, apabila pengguna mula memasukkan kata kunci pertanyaan, enjin carian biasanya menunggu pengguna untuk melengkapkan input dan kemudian melakukan carian lengkap. Ini mengurangkan pengalaman dan responsif pengguna, terutamanya apabila anda mempunyai sejumlah besar data.

Untuk meningkatkan pengalaman pengguna dan kelajuan tindak balas, kami boleh menggunakan fungsi carian autolengkap. Menggunakan ciri carian autolengkap, tapak bertindak balas serta-merta dan memaparkan beberapa kemungkinan hasil carian berdasarkan input pengguna dan petikan yang paling mungkin.

Artikel ini akan memperkenalkan cara menggunakan PHP dan Redis untuk melaksanakan fungsi carian autolengkap.

PHP ialah bahasa pengaturcaraan tujuan umum yang digunakan secara meluas untuk pembangunan web. Redis ialah pangkalan data simpanan kunci/nilai dalam memori yang pantas untuk caching dan capaian data berkelajuan tinggi. Kami akan menggunakan kedua-dua teknik ini untuk membina pelaksanaan carian autolengkap.

Pertama, kita perlu mencipta kotak input untuk menangkap input pengguna dan memaparkan hasil carian yang mungkin. Kita boleh menggunakan HTML dan JavaScript untuk melaksanakan fungsi ini. Apabila pengguna memasukkan kata kunci pertanyaan dalam kotak input, kami boleh menggunakan JavaScript untuk meminta hasil carian yang sepadan daripada pelayan dan memaparkannya dalam menu lungsur. Teknologi AJAX diperlukan di sini untuk melaksanakan permintaan automatik tanpa memuat semula halaman.

Sekarang, kami perlu menghantar permintaan ini ke bahagian pelayan. Kita boleh menggunakan PHP untuk mengendalikan tugas ini. Pertama, kita perlu mencipta skrip pada bahagian pelayan untuk bertindak balas kepada permintaan AJAX. Skrip ini akan memproses input pengguna dan menggunakan cache Redis untuk pemeriksaan data.

Redis membolehkan kami menyimpan kata kunci dan pasangan kunci/nilai yang dikira rujukan ke dalam ingatan. Apabila kata kunci carian dimasukkan, kami boleh segera mencari kata kunci yang berkaitan dalam ingatan dan mengemas kini kiraan rujukan. Dengan menggunakan caching, kami boleh meningkatkan kelajuan hasil carian diperoleh.

Skrip PHP harus diteruskan seperti berikut:

  1. Sambung ke pelayan Redis
  2. Ekstrak kata kunci carian daripada pembolehubah $_GET
  3. Dari Ekstrak hasil carian yang berkaitan daripada Redis
  4. Isih hasil carian mengikut kemungkinan
  5. Kembalikan hasil carian ke Javascript

Langkah seterusnya ialah menulis kod PHP untuk mengekstrak hasil carian yang berkaitan. Dengan mengandaikan kami menyimpan kata kunci dan kiraan rujukan dalam pangkalan data Redis, kami boleh menggunakan kod berikut untuk mengekstrak hasil carian yang berkaitan:

$redis = new Redis();
$redis->connect(' 127.0 .0.1', 6379);

$query = $_GET['query'];
$keywords = $redis->zRevRange('keywords', 0, -1, 'WITHSCORES' ) ;
$results = array();

foreach ($kata kunci sebagai $keyword => $score) {

if (stripos($keyword, $query) === 0) {
    $results[] = array(
        'name' => $keyword,
        'score' => $score
    );
}

}

usort($results , function($elem1, $elem2) {

return $elem2['score'] - $elem1['score'];

});

echo json_encode($results);

Di sini kami menggunakan kaedah zRevRange() dalam Redis untuk mengekstrak semua pasangan kunci/nilai kata kunci, diisih daripada jumlah rujukan tertinggi hingga terendah. Selepas itu, kami menggunakan fungsi stripos() untuk melakukan padanan kabur, menapis hasil carian yang berkaitan dan menambahkannya pada set hasil. Akhir sekali, kami menggunakan fungsi usort() untuk mengisih hasil carian mengikut kiraan rujukan. Akhir sekali, kami menggunakan fungsi json_encode() untuk menukar hasil kepada format JSON dan mengembalikannya kepada Javascript.

Pada ketika ini, kami telah menyelesaikan fungsi asas menggunakan PHP dan Redis untuk melaksanakan carian penyiapan automatik Fungsi ini membolehkan pengguna tidak perlu menunggu carian lengkap selesai sebelum mereka dapat melihat hasil carian , yang meningkatkan pengalaman dan kelajuan pengguna.

Atas ialah kandungan terperinci Laksanakan carian penyiapan automatik menggunakan PHP dan Redis. 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