Khi sử dụng fulltext search thì table bạn dùng phải là MyISAM.
mà MwISAM lại ko có hổ trợ tạo relationship giữa các table vậy khi đó TG xử lý vấn đề: Có thể tạo relationship và đồng thời sử dụng được Fulltext = cách nào
hình như hổ trợ từ MySQL 4.x, TG cũng không nắm rõ hết các đặc điểm của search FULLTEXT, nhiều lúc cũng có 1 số lỗi ma không hiểu lý do, TG share cách làm hiện tại trên phpbasic
Về thiét kế:
tạo FULLTEXT cho những field cần dùng để search FULLTEXT
- khi tạo table:
CREATE TABLE articles (
id INT UNSIGNED AUTO_INCREMENT NOT NULL PRIMARY KEY,
title VARCHAR(200),
body TEXT,
FULLTEXT (title,body)
- edit các field của table sẵn có:
ALTER TABLE articles ADD FULLTEXT (
title ,
body
);
Câu query:
SELECT * FROM articles
WHERE MATCH (title,body)
AGAINST ('<keyword>');
* Một số chú ý:
- Chỉ có các field có dữ liệu VARCHAR hoặc TEXT mới có thể tạo được FULLTEXT
- Bạn chỉ thấy được sự khác biệt của search FULLTEXT và cách search thông thường khi đưa kiểm tra trên dữ liệu thật( nhập đầy đủ, và số dòng khoảng vài chục trở lên)
- Không dùng được JOIN table khác trong câu search FULLTEXT
Đây là 1 vài kinh nghiệm TG note lại, anh em tham khảo có thiếu sót thì bổ sung thêm