Rumah >pangkalan data >tutorial mysql >Bagaimanakah Saya Boleh Mengutamakan Perkaitan Carian Merentas Berbilang Lajur dalam Carian Teks Penuh MySQL?
Carian Teks Penuh MySQL: Meningkatkan Perkaitan dan Pengutamaan Lajur
Mencari istilah khusus merentas berbilang lajur dalam pangkalan data ialah tugas biasa. MySQL menyediakan fungsi MATCH() dan AGAINST() untuk melakukan carian teks penuh, membolehkan pengguna menentukan istilah carian dan mod carian.
Walau bagaimanapun, apabila berurusan dengan berbilang lajur dan mengutamakan perkaitan carian, pertimbangan tambahan timbul. Untuk menyusun keputusan mengikut perkaitan, pertanyaan mudah seperti SELECT * FROM page WHERE MATCH(head, body) AGAINST('some words' IN BOOLEAN MODE) boleh digunakan.
Untuk mengutamakan perkaitan berdasarkan lajur tertentu, seperti sebagai lajur kepala, pendekatan alternatif diperlukan. Dengan mencipta lajur tambahan untuk menyimpan skor perkaitan untuk lajur kepala, pengguna boleh memperoleh lebih fleksibiliti dalam menyusun dan mengutamakan hasil. Pendekatan ini, bagaimanapun, mempunyai implikasi prestasi disebabkan oleh operasi carian tambahan pada jadual yang sama.
Penyelesaian alternatif melibatkan penggunaan lajur perkaitan tambahan dan menggabungkannya dengan skor perkaitan daripada carian teks penuh umum. Ini boleh dicapai menggunakan pertanyaan seperti:
SELECT pages.*, MATCH (head, body) AGAINST ('some words') AS relevance, MATCH (head) AGAINST ('some words') AS title_relevance FROM pages WHERE MATCH (head, body) AGAINST ('some words') ORDER BY title_relevance DESC, relevance DESC
Pertanyaan ini memberikan perkaitan yang lebih tinggi kepada hasil carian yang istilah carian berlaku dalam lajur kepala sambil mengekalkan perkaitan carian keseluruhan.
Selain itu, menggunakan enjin pangkalan data seperti PostgreSQL, yang menawarkan pemberat pengendali boleh dikonfigurasikan dan mekanisme kedudukan, boleh menyediakan pilihan yang lebih maju untuk keutamaan dan pemarkahan perkaitan.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengutamakan Perkaitan Carian Merentas Berbilang Lajur dalam Carian Teks Penuh MySQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!