Kegagalan Carian Teks Penuh: Penyelesaian dan Penambahbaikan
Pengalaman anda dengan carian teks penuh dalam MySQL menyerlahkan perangkap biasa. Menggunakan data yang terhad boleh membawa kepada hasil yang tidak memuaskan kerana keperluan untuk variasi teks. Untuk mendapatkan hasil yang bermakna, adalah penting untuk mengisi indeks dengan set data yang pelbagai.
Stop Words
MySQL mengekalkan senarai kata henti, yang merupakan perkataan biasa seperti sebagai "adalah" dan "dan" yang dikecualikan daripada pertanyaan carian. Secara lalai, pelayan menggunakan senarai pra-disusun, tetapi anda boleh menggantikannya dengan fail tersuai melalui pembolehubah sistem 'ft_stopword_file'.
Contoh Pertanyaan
Kepada tunjukkan carian teks penuh yang berkesan, pertimbangkan pertanyaan berikut:
-- Select records matching a single word SELECT * FROM testproduct WHERE MATCH(prod_name) AGAINST('score' IN BOOLEAN MODE); -- Select records matching multiple words SELECT * FROM testproduct WHERE MATCH(prod_name) AGAINST('harpoon +article' IN BOOLEAN MODE);
Bahasa Asli Mod
Menggunakan MOD BAHASA ASLI menimbang perkataan yang dipadankan berdasarkan kaitannya, memberikan pengisihan hasil yang lebih bermakna.
SELECT id,prod_name, match( prod_name ) AGAINST ( '+harpoon +article' IN NATURAL LANGUAGE MODE) AS relevance FROM testproduct ORDER BY relevance DESC
Pertanyaan ini memberikan skor perkaitan kepada setiap rekod, membenarkan anda untuk mengutamakan padanan yang paling relevan.
Tambahan Pertimbangan
Dengan memahami nuansa ini dan menyediakan indeks carian anda dengan kepelbagaian yang mencukupi, anda boleh mengatasi batasan yang anda temui pada mulanya dan memanfaatkan kuasa carian teks penuh dalam MySQL.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Meningkatkan Ketepatan dan Kecekapan Carian Teks Penuh dalam MySQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!