Rumah >pangkalan data >tutorial mysql >Bagaimanakah Saya Boleh Mengoptimumkan Perkaitan Carian Teks Penuh MySQL dengan Mengutamakan Lajur Tertentu?

Bagaimanakah Saya Boleh Mengoptimumkan Perkaitan Carian Teks Penuh MySQL dengan Mengutamakan Lajur Tertentu?

Patricia Arquette
Patricia Arquetteasal
2024-12-09 21:34:131007semak imbas

How Can I Optimize MySQL Full-Text Search Relevance by Prioritizing Specific Columns?

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!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn