Từ Tài liệu MySQL
-
+
Dấu cộng ở đầu cho biết từ này phải có ở mỗi hàng được trả về. -
*
Dấu hoa thị đóng vai trò là toán tử tổ hợp (hoặc ký tự đại diện). Không giống như các toán tử khác, nó nên được thêm vào từ để giảm bớt. Các từ khớp nếu chúng bắt đầu bằng từ đứng trước toán tử *.Nếu một từ được chỉ định bằng toán tử hàm, nó không bị bắt đầu từ truy vấn boolean, nếu nó quá ngắn (như được xác định từ cài đặt ft_min_word_len) hoặc từ dừng. Điều này xảy ra bởi vì từ khóa không được xem là quá ngắn hoặc sai từ ngữ, mà là một tiền tố phải xuất hiện trong tài liệu dưới dạng một từ bắt đầu bằng tiền tố .
Trong ngữ cảnh:
TRẬN ĐẤU (...) LẠI (...)
MATCH (name) AGAINST ('+ski*' IN BOOLEAN MODE)
có nghĩa là bạn đang tìm kiếm các hàng có một từ trong name
cột phải chứa ski
và phải bắt đầu với từ ski
.
Từ bộ bạn đã đăng, Dartmouth Skiway
là name
duy nhất phù hợp với các yêu cầu này:nó chứa từ ski
, và có tiền tố là từ ski
.
name
khác , mặc dù chúng phù hợp với quy tắc đầu tiên: phải chứa ski
, chúng không có tiền tố ski
, như được quy định trong quy tắc của bạn. Hàng được trả về bởi tìm kiếm boolean của bạn là hàng duy nhất có name
cột chứa một từ vừa chứa ski
và là một từ có tiền tố bởi ski
.
Theo đề xuất của ajreal, hãy thử giảm ft_min_len_word_setting
trong my.cnf
. Tìm kiếm của bạn có thể không đưa ra kết quả như bạn mong đợi do cài đặt mặc định. Hãy thử giảm nó xuống còn 3.
Cột WHERE LIKE% text%
WHERE name LIKE "%ski%"
tìm kiếm các hàng có name
các cột chứa ski
, bất kể từ xuất hiện ở đâu.