Rumah > Artikel > pangkalan data > Bagaimana untuk Menyesuaikan Perkaitan Carian Teks Penuh dalam MySQL dengan Mengutamakan Medan Tertentu?
Menyesuaikan Perkaitan Carian Teks Penuh dalam MySQL untuk Meningkatkan Medan
Dalam MySQL, carian teks penuh menyediakan alat yang berkuasa untuk mendapatkan hasil yang berkaitan daripada set data yang besar. Walau bagaimanapun, apabila bekerja dengan berbilang medan dalam pertanyaan carian, adalah wajar untuk mengutamakan medan tertentu untuk meningkatkan pengaruhnya pada skor perkaitan keseluruhan. Artikel ini meneroka teknik untuk memanipulasi perkaitan carian teks penuh untuk menjadikan satu medan lebih penting daripada medan lain.
Cabaran: Mengubah Suai Perkaitan Berdasarkan Kepentingan Medan
Pertimbangkan senario di mana pangkalan data mengandungi dua lajur: kata kunci dan kandungan. Indeks teks penuh telah dibuat merentas kedua-dua lajur. Objektifnya adalah untuk memastikan baris yang mengandungi kata kunci tertentu dalam lajur kata kunci mendapat kedudukan yang lebih tinggi dari segi perkaitan berbanding baris yang mengandungi kata kunci yang sama dalam lajur kandungan.
Penyelesaian: Mencipta Indeks Tersuai
Untuk mencapai penyesuaian ini, MySQL menyediakan keupayaan untuk mencipta berbilang indeks teks penuh, membenarkan pengasingan pengiraan perkaitan untuk setiap medan. Dalam kes ini, tiga indeks boleh diwujudkan:
Menyoal dengan Perkaitan Berwajaran
Dengan indeks tersedia, pertanyaan yang diubah suai boleh digunakan untuk menilai perkaitan setiap bidang. Daripada bergantung pada skor perkaitan tunggal, pertanyaan kini mengira dua markah berasingan:
Skor perkaitan akhir kemudiannya dikira dengan menggunakan pemberat yang diingini pada setiap markah, cth.:
<code class="sql">SELECT id, keyword, content, MATCH (keyword) AGAINST ('watermelon') AS rel1, MATCH (content) AGAINST ('watermelon') AS rel2 FROM table WHERE MATCH (keyword,content) AGAINST ('watermelon') ORDER BY (rel1 * 1.5) + (rel2) DESC</code>
Dalam pertanyaan ini, perkaitan padanan dalam medan kata kunci ditimbang 1.5 kali lebih tinggi daripada padanan dalam medan kandungan.
Pertimbangan
Adalah penting untuk ambil perhatian bahawa mencipta indeks tambahan memberi kesan kepada penggunaan cakera dan penggunaan memori. Prestasi penandaarasan adalah penting untuk menentukan bilangan optimum dan pemberat indeks untuk aplikasi tertentu. Melaksanakan indeks tersuai dan pengiraan perkaitan berwajaran menyediakan mekanisme yang berkuasa untuk meningkatkan keupayaan carian teks penuh dalam MySQL dan menyesuaikan perkaitan hasil carian berdasarkan kepentingan medan.
Atas ialah kandungan terperinci Bagaimana untuk Menyesuaikan Perkaitan Carian Teks Penuh dalam MySQL dengan Mengutamakan Medan Tertentu?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!