การเตรียมตารางและดัชนี Full-Text
สร้างตารางและเพิ่ม FULLTEXT INDEX:
mysql> CREATE TABLE DemoTable1833 (
Name VARCHAR(20)
);
mysql> ALTER TABLE DemoTable1833 ADD FULLTEXT(Name);
เพิ่มข้อมูลทดสอบ
mysql> INSERT INTO DemoTable1833 VALUES('John Doe');
mysql> INSERT INTO DemoTable1833 VALUES('Adam Smith');
mysql> INSERT INTO DemoTable1833 VALUES('Chris Brown');
mysql> INSERT INTO DemoTable1833 VALUES('John Smith');
การค้นหาแบบ Full-Text Search
ใช้ MATCH() AGAINST() ในโหมด Boolean Mode:
mysql> SELECT * FROM DemoTable1833
WHERE MATCH(Name) AGAINST('+John +Smith' IN BOOLEAN MODE);
ผลลัพธ์:
+------------+
| Name |
+------------+
| John Smith |
| John Doe |
| Adam Smith |
+------------+
การทำงานของ Boolean Mode
+= ต้องมีคำนี้ (AND)-= ห้ามมีคำนี้ (NOT)*= Wildcard สำหรับคำนำหน้า""= ค้นหาข้อความที่ตรงกันทุกตัวอักษร
ข้อจำกัด
- FULLTEXT INDEX ทำงานได้กับ MyISAM และ InnoDB (MySQL 5.6+)
- คำที่สั้นกว่า 3-4 ตัวอักษร (ขึ้นกับการตั้งค่า) จะถูกเพิกเฉย
- Stopwords จะไม่ถูกจัดทำดัชนี