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.