Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Tìm kiếm theo ký tự đại diện trong tìm kiếm toàn văn bản của MySQL

Thật không may, bạn không thể làm điều này bằng cách sử dụng chỉ mục toàn văn bản MySQL. Bạn không thể truy xuất '*nited states' ngay lập tức từ chỉ mục vì các ký tự bên trái là phần quan trọng nhất của chỉ mục. Tuy nhiên, bạn có thể tìm kiếm 'United Sta*' .

// the only possible wildcard full-text search in MySQL
WHERE MATCH(column) AGAINST ('United Sta*' IN BOOLEAN MODE)

Toàn văn của MySQL hoạt động tốt nhất khi tìm kiếm toàn bộ từ trong câu - thậm chí điều đó đôi khi có thể tệ hại. Nếu không, tôi khuyên bạn nên sử dụng công cụ toàn văn bên ngoài như Solr hoặc Sphinx . Tôi nghĩ Sphinx cho phép ký tự đại diện tiền tố và hậu tố, không chắc chắn về những ký tự đại diện khác.

Bạn có thể quay lại LIKE của MySQL , nhưng một lần nữa, chạy các truy vấn như LIKE '%nited states' hoặc LIKE '%nited Stat%' , cũng sẽ ảnh hưởng đến hiệu suất, vì nó không thể sử dụng chỉ mục trên một vài ký tự đầu tiên. 'United Sta%''Unit%States' không sao vì chỉ mục có thể được sử dụng đối với nhóm ký tự đã biết đầu tiên.

Một lưu ý khá quan trọng khác khi sử dụng lập chỉ mục toàn văn của MySQL là danh sách từ dừng và cài đặt độ dài từ tối thiểu . Ví dụ:trên môi trường lưu trữ chia sẻ, bạn sẽ bị giới hạn các từ lớn hơn hoặc bằng 4 ký tự. Vì vậy, tìm kiếm 'Goo' để lấy 'Google' sẽ không thành công. Danh sách từ dừng cũng không cho phép các từ phổ biến như 'và', 'có thể' và 'bên ngoài' - trên thực tế, có 548 từ dừng cùng nhau! Một lần nữa, nếu không sử dụng dịch vụ lưu trữ được chia sẻ, các cài đặt này tương đối dễ sửa đổi, nhưng nếu bạn đang sử dụng, thì bạn sẽ khó chịu với một số cài đặt mặc định.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Làm thế nào để kiểm tra cơ sở dữ liệu và kết quả là kiểm tra một nút radio?

  2. Ví dụ DAYOFWEEK () - MySQL

  3. Chọn tất cả các điểm không gian địa lý bên trong một hộp giới hạn

  4. tập lệnh mẫu php để phân trang

  5. Thêm số 0 ở đầu vào một số giá trị trong cột trong MySQL