Carian Laravel dengan Berbilang Kata Kunci dan Isih Kaitan
Pengenalan
Artikel ini membincangkan perkara biasa cabaran dalam pembangunan Laravel: melaksanakan fungsi carian yang menggabungkan berbilang kata kunci terhadap berbilang lajur pangkalan data. Hasil carian mesti disusun berdasarkan perkaitan, dengan mengambil kira kehadiran dan susunan kata kunci yang ditentukan.
Pernyataan Masalah
Seorang pengguna sedang cuba untuk melaksanakan enjin carian dalam Laravel di mana berbilang kata kunci dimasukkan ke dalam bar carian, dan hasilnya dipaparkan mengikut urutan perkaitan. Dua lajur khusus, meta_name dan meta_description, perlu ditanya. Kriteria carian adalah seperti berikut:
Penyelesaian
Untuk mencapai susunan ini, tiga pertanyaan pangkalan data berasingan dibina:
$all = DB::table('posts') ->where('meta_name', 'like', ... /* %word1% %word2% %word3% */) ->orWhere('meta_description', 'like', ... /* %word1% %word2% %word3% */); $twoWords = DB::table('posts') ->where('meta_name', 'like', ... /* %word1% %word2% */) ->orWhere('meta_description', 'like', ... /* %word1% %word2% */) ->whereNotIn('id', $all->pluck('id')); $oneWord = DB::table('posts') ->where('meta_name', 'like', ... /* %word1% */) ->orWhere('meta_description', 'like', ... /* %word1% */) ->whereNotIn('id', $all->pluck('id')) ->whereNotIn('id', $twoWords->pluck('id'));
Kesatuan dan Pesanan
Akhir sekali, ketiga-tiga set hasil digabungkan menggunakan kesatuan:
$posts = $all->union($twoWords)->union($oneWord)->skip($start)->take($this->rowperpage)->get();
Proses ini memastikan baris yang sepadan dengan kriteria yang ditentukan diambil dalam susunan perkaitan yang dikehendaki.
Penomboran dan Pemuatan Async
Untuk melaksanakan penomboran load-on-scroll, kaedah langkau dan ambil boleh digunakan untuk menambahkan hasil baharu sebagai pengguna skrol. Apabila tiada lagi data untuk dipaparkan, mesej boleh dikembalikan.
Kesimpulan
Menggunakan penyelesaian yang disediakan, ciri carian akan mendapatkan semula hasil yang berkaitan berdasarkan berbilang kata kunci dan susunan penampilan mereka dalam lajur yang ditentukan. Hasilnya akan dipaparkan dalam cara memuatkan pada tatal, memberikan pengalaman pengguna yang lancar.
Atas ialah kandungan terperinci Bagaimana untuk Melaksanakan Carian Berkaitan dalam Laravel dengan Berbilang Kata Kunci?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!