Tôi có một cơ sở dữ liệu MySQL (phiên bản 5.5.28) với một bảng như thế này:Tìm kiếm toàn văn với InnoDB trong MySQL
products (InnoDB)
-------------------------------------------------
search_id title description
1 Levi Blue Jeans Some cool jeans
2 Gucci Handbag Great accessory
3 Prada Dress Beautiful dress
tôi muốn làm một cái gì đó như thế này trong MySQL:
SELECT MATCH(title) AGAINST ('Jeans') AS score, search_id, FROM search WHERE MATCH(title) AGAINST ('Jeans' IN BOOLEAN MODE)
Theo tôi biết bạn chỉ có thể làm điều đó trong MyISAM. Là nó có thể thực hiện tìm kiếm tương tự với InnoDB mà không cần đến những thứ như:
Đối với ứng dụng của tôi (khoảng 1.000-2.000 hồ sơ) Sphinx, vv có vẻ như quá mức cần thiết. Nhưng nhận được mọi bản ghi vào một mảng và tìm kiếm thông qua nó với PHP cũng có vẻ quá nhiều. Nhưng có thể bạn không đồng ý.
PS. LIKE dường như không hoạt động tốt cho tôi. Kết quả thường ít chính xác hơn và bạn không thể đạt được điểm số như bạn có thể với MATCH.
Có vẻ như MySQL 6 sẽ hỗ trợ một số tính năng [fulltext] (http://www.drdobbs.com/database/full-text-search-with-innodb/231902587), nhưng bạn có thể phải sử dụng một thứ khác trong thời gian chờ đợi. – jakerella