Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> MySQL

ตั้งค่าคุณสมบัติการค้นหาใน MySQL สำหรับการค้นหาข้อความแบบเต็ม


สำหรับสิ่งนี้ ให้ใช้ดัชนีการค้นหา FULLTEXT การค้นหาข้อความแบบเต็มจะดำเนินการโดยใช้ MATCH() ... กับไวยากรณ์

ให้เราสร้างตารางก่อน -

mysql> สร้างตาราง DemoTable1542 -> ( -> รหัส int ไม่ใช่ NULL AUTO_INCREMENT คีย์หลัก -> ชื่อ varchar(20) -> ); ตกลง ตกลง 0 แถวได้รับผลกระทบ (2.16 วินาที)

ต่อไปนี้เป็นแบบสอบถามเพื่อสร้างดัชนีการค้นหาข้อความเต็ม -

mysql> สร้างดัชนี fulltext search_name บน DemoTable1542(Name);Query OK, 0 แถวได้รับผลกระทบ, 1 คำเตือน (10.51 วินาที) ระเบียน:0 รายการซ้ำ:0 คำเตือน:1

แทรกระเบียนบางส่วนในตารางโดยใช้คำสั่ง insert -

mysql> แทรกลงในค่า DemoTable1542(ชื่อ) ('John Doe'); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.31 วินาที)mysql> แทรกลงในค่า DemoTable1542 (ชื่อ) ('Chris Brown'); แบบสอบถามตกลง 1 แถว ได้รับผลกระทบ (0.29 วินาที) mysql> แทรกลงในค่า DemoTable1542 (ชื่อ) ('John Smith'); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.46 วินาที) mysql> แทรกลงในค่า DemoTable1542 (ชื่อ) ('Adam Smith'); ตกลงแบบสอบถาม ได้รับผลกระทบ 1 แถว (4.71 วินาที)

แสดงระเบียนทั้งหมดจากตารางโดยใช้คำสั่ง select -

mysql> เลือก * จาก DemoTable1542;

สิ่งนี้จะสร้างผลลัพธ์ต่อไปนี้ -

<ก่อนหน้า>+----+-------------+| รหัส | ชื่อ |+----+-------------+| 1 | จอห์น โด || 2 | คริส บราวน์ || 3 | จอห์น สมิธ || 4 | Adam Smith |+----+--------------------+4 แถวในชุด (0.04 วินาที)

นี่คือข้อความค้นหาที่ใช้จับคู่…กับการค้นหาข้อความแบบเต็ม -

mysql> เลือก * จาก DemoTable1542 โดยที่ Match(Name) กับ ('John' ในโหมดบูลีน);

สิ่งนี้จะสร้างผลลัพธ์ต่อไปนี้ -

<ก่อนหน้า>+----+-----------+| รหัส | ชื่อ |+----+-----------+| 1 | จอห์น โด || 3 | John Smith |+----+-----------+2 แถวในชุด (0.03 วินาที)