Rumah >pangkalan data >tutorial mysql >Bagaimanakah Saya Boleh Mengutamakan Medan dalam Carian Teks Penuh MySQL untuk Perkaitan yang Dipertingkatkan?

Bagaimanakah Saya Boleh Mengutamakan Medan dalam Carian Teks Penuh MySQL untuk Perkaitan yang Dipertingkatkan?

Patricia Arquette
Patricia Arquetteasal
2024-11-03 23:37:30534semak imbas

How Can I Prioritize Fields in MySQL Fulltext Search for Enhanced Relevance?

Mengutamakan Medan dalam Carian Teks Penuh MySQL untuk Perkaitan Dipertingkat

Andaikan anda menghadapi situasi di mana anda mempunyai dua lajur, "kata kunci" dan "kandungan ," dalam jadual dan indeks teks penuh asas yang merangkumi kedua-dua lajur. Walau bagaimanapun, anda ingin memberikan baris yang mengandungi istilah khusus dalam lajur "kata kunci" lebih tinggi kaitannya berbanding baris yang mengandunginya dalam lajur "kandungan".

Untuk menyelesaikan tugas ini dalam konteks penggunaan "padanan melawan" sintaks, anda boleh melaksanakan pendekatan berbilang muka:

  1. Buat Berbilang Indeks Teks Penuh:
    Tubuhkan tiga indeks teks penuh:

    • Satu pada lajur "kata kunci" sahaja
    • Satu pada lajur "kandungan" sahaja
    • Satu pada kedua-dua lajur "kata kunci" dan "kandungan"
  2. Leverage Pengiraan Perkaitan Berwajaran:
    Dalam pertanyaan anda, dapatkan semula skor perkaitan untuk padanan "kata kunci" dan "kandungan" secara berasingan. Kemudian, gabungkan markah ini menggunakan penambahan berwajaran, mengaitkan wajaran yang lebih tinggi kepada perkaitan "kata kunci":

    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*weight_factor)+(rel2) DESC
  3. Kawal Ingat Kembali dengan Indeks Gabungan:
    Sementara pengiraan di atas menentukan perkaitan, adalah penting untuk mengasingkan penggunaan indeks untuk carian dan perkaitan. Gunakan indeks pada kedua-dua "kata kunci" dan "kandungan" untuk mengawal ingat kembali, memastikan baris yang berkaitan dikembalikan dalam hasil carian.

Pendekatan ini membolehkan anda mengutamakan kepentingan lajur "kata kunci" untuk menentukan perkaitan dokumen dalam pertanyaan carian teks penuh MySQL anda. Faktor pemberat dalam pengiraan membolehkan anda memperhalusi keutamaan istilah yang sepadan dalam lajur yang dikehendaki.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengutamakan Medan dalam Carian Teks Penuh MySQL untuk Perkaitan yang Dipertingkatkan?. 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