Computer >> Máy Tính >  >> Lập trình >> MySQL

Đặt tính năng tìm kiếm trong MySQL để tìm kiếm toàn văn

Đối với điều này, hãy sử dụng chỉ mục tìm kiếm FULLTEXT. Tìm kiếm toàn văn bản được thực hiện bằng cú pháp MATCH () ... AGAINST.

Đầu tiên chúng ta hãy tạo một bảng -

mysql> create table DemoTable1542
   -> (
   -> Id int NOT NULL AUTO_INCREMENT PRIMARY KEY,
   -> Name varchar(20)
   -> );
Query OK, 0 rows affected (2.16 sec)

Sau đây là truy vấn để tạo chỉ mục tìm kiếm toàn văn bản -

mysql> create fulltext index search_name on DemoTable1542(Name);
Query OK, 0 rows affected, 1 warning (10.51 sec)
Records: 0  Duplicates: 0  Warnings: 1

Chèn một số bản ghi vào bảng bằng lệnh chèn -

mysql> insert into DemoTable1542(Name) values('John Doe');
Query OK, 1 row affected (0.31 sec)
mysql> insert into DemoTable1542(Name) values('Chris Brown');
Query OK, 1 row affected (0.29 sec)
mysql> insert into DemoTable1542(Name) values('John Smith');
Query OK, 1 row affected (0.46 sec)
mysql> insert into DemoTable1542(Name) values('Adam Smith');
Query OK, 1 row affected (4.71 sec)

Hiển thị tất cả các bản ghi từ bảng bằng câu lệnh select -

mysql> select * from DemoTable1542;

Điều này sẽ tạo ra kết quả sau -

+----+-------------+
| Id | Name        |
+----+-------------+
|  1 | John Doe    |
|  2 | Chris Brown |
|  3 | John Smith  |
|  4 | Adam Smith  |
+----+-------------+
4 rows in set (0.04 sec)

Đây là truy vấn để sử dụng đối sánh… đối với tìm kiếm văn bản đầy đủ -

mysql> select * from DemoTable1542 where match(Name) against('John' in boolean mode);

Điều này sẽ tạo ra kết quả sau -

+----+------------+
| Id | Name       |
+----+------------+
|  1 | John Doe   |
|  3 | John Smith |
+----+------------+
2 rows in set (0.03 sec)