Saya rasa Anda ingin menggunakan Penelusuran Teks Lengkap Boolean
Jika Anda mencocokkan tanpa operator + - terhadap seperti green red blue semua baris dikembalikan, di mana catatan berisi setidaknya satu kata:green atau red atau blue .
IN BOOLEAN MODE dan tanpa operator setiap kata yang cocok akan mendapat skor 1 . Jadi jika ada catatan yang cocok dengan dua dari tiga kata itu akan mencetak 2 .
Untuk mendapatkan baris dengan setidaknya 2 skor:
SELECT *,
MATCH (`TextToCheckIn`) AGAINST ('green red blue' IN BOOLEAN MODE) `score`
FROM `my_tab` WHERE
MATCH (`TextToCheckIn`) AGAINST ('green red blue' IN BOOLEAN MODE)
HAVING `score` >= 2
ORDER BY `score` DESC
Dalam mode Bahasa Alami penilaian bekerja sama sekali berbeda. Pikirkan itu terutama didasarkan pada BM25 .
Pada kumpulan data besar, penelusuran teks lengkap boolean (menggunakan indeks teks lengkap
) biasanya mengungguli REGEXP atau LIKE sejauh ini jika mencocokkan kata di suatu tempat dalam teks. Hanya akan menggunakan suka/regexp untuk pencocokan dari inisial seperti REGEXP '^word' atau LIKE 'word%' - jika indeks dapat digunakan.