Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Misteri Pencarian Teks Lengkap MySQL

Dari dokumen MySQL

  • + Tanda plus di depan menunjukkan bahwa kata ini harus ada di setiap baris yang dikembalikan.

  • * Tanda bintang berfungsi sebagai operator pemotongan (atau wildcard). Tidak seperti operator lain, itu harus ditambahkan ke kata yang akan terpengaruh. Kata-kata cocok jika dimulai dengan kata sebelum *operator.

    Jika sebuah kata dispesifikasikan dengan operator pemotongan, kata tersebut tidak dihilangkan dari kueri boolean, bahkan jika terlalu pendek (seperti yang ditentukan dari pengaturan ft_min_word_len) atau stopword. Hal ini terjadi karena kata tersebut tidak dilihat sebagai kata yang terlalu pendek atau sebagai stopword, melainkan sebagai awalan yang harus ada dalam dokumen berupa kata yang diawali dengan awalan .

Dalam Konteks:

PERTANDINGAN(...) MELAWAN(...)

MATCH (name) AGAINST ('+ski*' IN BOOLEAN MODE) berarti Anda sedang mencari baris di mana sebuah kata dalam name kolom harus berisi ski , dan harus dimulai dengan kata ski .

Dari set yang Anda poskan, Dartmouth Skiway adalah satu-satunya name yang sesuai dengan persyaratan ini:berisi kata ski , dan diawali dengan kata ski .

name lainnya kolom, meskipun cocok dengan aturan pertama:harus berisi ski , mereka tidak diawali dengan ski , sebagaimana diatur dalam aturan Anda. Baris yang dikembalikan oleh penelusuran boolean Anda adalah satu-satunya baris dengan name kolom yang berisi kata yang keduanya mengandung ski dan merupakan kata diawali dengan ski .

Seperti yang disarankan oleh ajreal, coba kurangi ft_min_len_word_setting di my.cnf . Pencarian Anda mungkin gagal untuk mendapatkan hasil yang Anda harapkan karena pengaturan default. Coba kurangi menjadi 3.

kolom MANA SEPERTI %text%

WHERE name LIKE "%ski%" mencari baris dengan name kolom yang berisi ski , di mana pun kata itu muncul.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cara elegan untuk menghapus baris yatim piatu?

  2. Menggunakan file .php untuk menghasilkan dump MySQL

  3. PDO Bind Params tergantung pada apakah mereka ada dalam kueri

  4. ningx, uwsgi, python kesalahan mysql permanen setelah beberapa waktu dari memulai aplikasi

  5. Dua tabel dengan kolom yang sama atau satu tabel dengan kolom tambahan?