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

Chuỗi thoát để sử dụng trong tìm kiếm toàn văn bản của MySQL

Chỉ các từ và toán tử có nghĩa trong chế độ tìm kiếm Boolean. Các toán tử là:+ , - , > < , ( ) , ~ , * , " , @distance . Sau một số nghiên cứu, tôi đã tìm thấy các ký tự của từ là gì:Chữ hoa, chữ thường, Số (chữ số) và _ . Tôi nghĩ bạn có thể sử dụng một trong hai cách tiếp cận:

  1. Thay thế tất cả các ký tự không phải từ bằng dấu cách (tôi thích cách tiếp cận này hơn). Điều này có thể được thực hiện với regex:

    $search = preg_replace('/[^\p{L}\p{N}_]+/u', ' ', $keyword);
    
  2. Thay thế các toán tử-ký tự bằng dấu cách:

    $search = preg_replace('/[+\-><\(\)~*\"@]+/', ' ', $keyword);
    

Chỉ các từ được lập chỉ mục bởi công cụ tìm kiếm toàn văn và có thể được tìm kiếm. Các ký tự không phải từ không được lập chỉ mục, vì vậy không có ý nghĩa gì nếu để chúng trong chuỗi tìm kiếm.

Tài liệu tham khảo:



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cách tự động tải MySQL khi khởi động trên OS X Yosemite / El Capitan

  2. Đang cố gắng kết nối với máy chủ MySQL từ xa (lỗi 2003)

  3. Tần số đếm Mysql

  4. MySQL trong đám mây - Ưu và nhược điểm của Amazon RDS

  5. Khóa ngoại MySQL khi xóa