Bagaimana untuk membuat carian teks penuh di Laravel?
Sep 16, 2025 am 03:42 AMUntuk melaksanakan carian teks penuh di Laravel, mula-mula menambah indeks teks penuh dalam penghijrahan menggunakan $ Table-> FullText (['Title', 'Content']); Kemudian gunakan WhereFullText (['Title', 'Content'], $ Query) dalam pertanyaan untuk mencari yang cekap; Menggabungkan logik dalam skop model untuk kebolehgunaan semula dan jatuh ke belakang jika diperlukan.
Untuk membuat carian teks penuh di Laravel, anda tidak perlu membina segala-galanya dari awal. Laravel menyediakan alat dan konvensyen yang berfungsi dengan baik dengan pengindeksan teks penuh peringkat pangkalan data dan pertanyaan. Berikut adalah cara anda boleh melaksanakannya dengan berkesan menggunakan MySQL atau PostgreSQL, yang menyokong carian teks penuh secara asli.
Sediakan indeks teks penuh dalam penghijrahan
Jika anda menggunakan MySQL atau PostgreSQL, anda boleh menambah indeks teks penuh pada lajur yang ingin anda cari. Sebagai contoh, jika anda mempunyai jadual artikel dan ingin mencari melalui tajuk dan kandungan , kemas kini penghijrahan anda:
pangkalan data/migrasi/xxxx_create_articles_table.php
Dalam definisi skema:
- $ Table-> Text ('Tajuk');
- $ Table-> Text ('Content');
- $ Table-> FullText (['Title', 'Content']); // Ini mewujudkan indeks teks penuh
Gunakan di mana teks penuh dalam pertanyaan
Laravel membolehkan anda menggunakan kaedah WhereFullText (tersedia di Laravel 8) untuk carian teks penuh pada MySQL dan PostgreSQL.
Contoh dalam pengawal:
- $ query = request ('carian');
- $ artikel = artikel :: whereFullText (['tajuk', 'kandungan'], $ query)-> get ();
Ini secara automatik menjana SQL yang betul ( perlawanan ... terhadap MySQL) dan memanfaatkan indeks teks penuh untuk prestasi yang lebih baik.
Mengendalikan logik carian dalam model atau perkhidmatan
Anda boleh merangkumi logik carian di dalam model anda untuk kebolehgunaan semula:
APP/MODELS/ARTIKEL.PHP
- Fungsi Awam ScopeSearch ($ query, $ Searchterm)
- {
- jika (! $ searchterm) pulangan $ query;
- kembali $ query-> wherefullText (['tajuk', 'kandungan'], $ Searchterm);
- }
Sekarang gunakannya seperti:
- Artikel :: carian ('Laravel penuh teks')-> mendapatkan ();
Fallback untuk carian asas (pilihan)
Jika teks penuh tidak tersedia atau anda berada di SQLite (yang mempunyai sokongan terhad), anda boleh kembali kepada pertanyaan seperti-walaupun ini lebih perlahan dan kurang tepat:
- $ artikel = artikel :: di mana ('tajuk', 'suka', "%$ query%")
- -> orwhere ('kandungan', 'seperti', "%$ query%")-> get ();
Untuk keperluan lanjutan seperti pemarkahan relevan, sokongan bahasa, atau aplikasi berskala besar, pertimbangkan pengakap dengan pemandu seperti Algolia atau Meilisearch. Tetapi untuk kebanyakan aplikasi, teks penuh asli dengan WhereFullText berfungsi hebat.
Pada dasarnya hanya tambah indeks, gunakan kaedah pertanyaan yang betul, dan simpannya mudah.
Atas ialah kandungan terperinci Bagaimana untuk membuat carian teks penuh di Laravel?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undress AI Tool
Gambar buka pakaian secara percuma

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Stock Market GPT
Penyelidikan pelaburan dikuasakan AI untuk keputusan yang lebih bijak

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Polymorphicrelationshipsinlaravelallowamodelikecommentorimagetobelongtomultiplemodelssuchaspost, video, oruserusingasingleassociation.2.Thedatabaseschemarequires {Hubungan}

Ya ya, ya, ya, ya, yapaS, yoyacreateasoiNworkWitThlyFollowingTheSestEps: 1.setuplaraveliausingcomposer, configurethe.Envfile, enNipAceAuthenticationEvheButreh/jetStream/fortifify, andRunMigrationsforUsermanGENGENGENGA

Sistem Taskscheduling Laravel membolehkan anda menentukan dan menguruskan tugas-tugas masa melalui PHP, tanpa mengedit secara manual dengan Crontab Server, anda hanya perlu menambah tugas cron yang dilaksanakan sekali seminit ke pelayan: *CD/Path-to-Your-Project && phpartisanschedule: RUN >>/null2> App \ Console \ Kernel Class; 1. Menentukan tugas boleh menggunakan kaedah perintah, panggilan atau eksekutif, seperti $ jadual-

Menggunakan Laravel untuk membina backend mudah alih memerlukan terlebih dahulu memasang rangka kerja dan mengkonfigurasi persekitaran pangkalan data; 2. Tentukan laluan API dalam Laluan/API.PHP dan mengembalikan respons JSON menggunakan pengawal sumber; 3. Melaksanakan pengesahan API melalui Laravelsanctum untuk menjana token untuk penyimpanan dan pengesahan mudah alih; 4. Sahkan jenis fail apabila memuat naik fail dan simpannya pada cakera awam, dan buat pautan lembut untuk akses luaran; 5. Persekitaran pengeluaran memerlukan HTTPS, menetapkan had semasa, mengkonfigurasi CORS, melakukan kawalan versi API dan mengoptimumkan pengendalian ralat. Ia juga disyorkan untuk menggunakan sumber API, paging, beratur dan alat dokumen API untuk meningkatkan kebolehpercayaan dan prestasi. Gunakan Laravel untuk membina selamat,

Buat fail bahasa: Buat subdirektori untuk setiap bahasa (seperti en, es) dalam direktori sumber/lang dan tambahkan fail.php mesej, atau gunakan fail JSON untuk menyimpan terjemahan; 2. Tetapkan Bahasa Permohonan: Baca Header Permintaan Menerima bahasa melalui middleware atau mengesan bahasa melalui awalan URL, tetapkan bahasa semasa menggunakan apl ()-> setLocale (), dan daftar middleware di kernel.php; 3. Gunakan fungsi terjemahan: gunakan __ (), trans () atau @lang dalam pandangan untuk mendapatkan kandungan terjemahan, dan disyorkan untuk menggunakan __ () yang menyokong sandaran; 4.

Laravelusmonologtologmessagesviathelogfacade, withdefaultlogsstoredinstorage/logs/laravel.log.configurechannelsinconfig/logging.phptocontroloutput;

Pastikan terdapat lajur ingat_token dalam jadual pengguna. Penghijrahan lalai Laravel sudah termasuk medan ini. Jika tidak, ia akan ditambah melalui penghijrahan; 2. Tambah kotak semak dengan nama ingat dalam borang log masuk untuk menyediakan pilihan "Ingat Saya"; 3. Lulus parameter ingat kepada kaedah pengarang :: percubaan () semasa pengesahan manual untuk membolehkan log masuk berterusan; 4. "Ingatlah saya" berlangsung selama 5 tahun secara lalai, dan boleh disesuaikan melalui item konfigurasi Remember_for dalam config/auth.php; 5. laravel secara automatik membatalkan ingat_token apabila perubahan kata laluan atau pemadaman pengguna. Adalah disyorkan untuk menggunakan HTTPS untuk memastikan keselamatan dalam persekitaran pengeluaran; 6

Acountrycanaccessallpoststhroughusersusinghasmanythrough.forexample, withcountries, user, andpoststableLesLinkedbyforeignkeys, thecountrymodeldefinesahaSmanythroughrelationshiptopostviauser,
