Rumah >pangkalan data >tutorial mysql >Bagaimanakah Saya Boleh Mengoptimumkan Perkaitan Carian Teks Penuh MySQL dengan Mengutamakan Lajur Tertentu?
Pengoptimuman Pertanyaan MySQL untuk Carian Teks Penuh dengan Perkaitan dan Pengutamaan Lajur
Apabila melakukan carian teks penuh dalam berbilang lajur menggunakan MySQL's MATCH( ) dan AGAINST(), pengguna sering menghadapi keperluan untuk memesan keputusan mengikut perkaitan sementara mengutamakan lajur tertentu. Walaupun mengira perkaitan berdasarkan kiraan perkataan adalah mudah, mengutamakan perkaitan lajur boleh terbukti mencabar.
Untuk menangani isu ini, pertanyaan diubah suai yang menggabungkan ukuran perkaitan khusus lajur boleh digunakan. Daripada membuat lajur perkaitan tambahan, pertanyaan berikut memperkenalkan faktor berat baharu:
SELECT pages.*, MATCH (head, body) AGAINST ('some words') AS relevance, MATCH (head) AGAINST ('some words') * 2 AS title_relevance FROM pages WHERE MATCH (head, body) AGAINST ('some words') ORDER BY title_relevance DESC, relevance DESC -- Alternatively: ORDER BY 0.5 * title_relevance + relevance DESC
Dalam pertanyaan yang diubah suai ini, perkaitan perkataan yang terdapat dalam lajur kepala digandakan, dengan itu mengutamakan lajur dalam perkaitan dengan berkesan pengiraan. Sebagai alternatif, pengganda berat tersuai boleh digunakan untuk memperhalusi lagi keutamaan.
Untuk pilihan keutamaan dan pemberat yang lebih maju, pertimbangkan untuk meneroka enjin pangkalan data alternatif seperti Postgres, yang menyediakan penyesuaian meluas operator pemberat dan algoritma kedudukan .
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengoptimumkan Perkaitan Carian Teks Penuh MySQL dengan Mengutamakan Lajur Tertentu?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!