Khi bạn nói về "sự liên quan ", bạn thực sự muốn tìm kiếm ngôn ngữ tự nhiên, được hỗ trợ bởi MySQL full-text searches. Cú pháp khác với các truy vấn bình thường như và bạn cần phải thêm chỉ mục đặc biệt vào bảng, nhưng việc sắp xếp theo mức độ liên quan là có thể theo cách này.
Sau đây là cách MySQL tính phù hợp (từ liên kết):
Khi MATCH() được sử dụng trong một mệnh đề WHERE, như trong ví dụ thể hiện trước đó, hàng trả lại sẽ được tự động sắp xếp với sự liên quan cao nhất đầu tiên . Giá trị liên quan là các số dấu phẩy động không âm. Mức độ liên quan không có nghĩa là không giống nhau. Mức độ liên quan được tính dựa trên số lượng từ trong hàng, số từ duy nhất trong hàng đó, tổng số từ trong bộ sưu tập và số lượng tài liệu (hàng) có chứa một từ cụ thể.
Để create a full-text index on an existing table, sử dụng toàn văn modifier:
CREATE FULLTEXT INDEX index_name
ON table_name (col1, col2, col3)
Sau đó, bạn có thể thực hiện một truy vấn như thế này để lấy kết quả theo thứ tự liên quan:
SELECT * FROM table_name
WHERE MATCH (col1,col2,col3)
AGAINST ('keyword' IN NATURAL LANGUAGE MODE);
Bằng cách "phù hợp nhất" , bạn có nghĩa là một trận đấu trên 'col_1' có ưu tiên cao hơn so với trận đấu trên' col_2', v.v ... không? – Wiseguy
Điều gì cấu thành các kết quả có liên quan nhất? – codewaggle
ý của bạn là "lọc" thay vì "sắp xếp"? – Sebas