-
Bạn không thể xác định chỉ mục văn bản đầy đủ (hoặc bất kỳ loại chỉ mục nào) trên nhiều bảng trong MySQL. Mỗi định nghĩa chỉ mục tham chiếu chính xác một bảng. Tất cả các cột trong một chỉ mục văn bản đầy đủ nhất định phải từ cùng một bảng.
-
Các cột được đặt tên làm đối số cho
MATCH ()
hàm phải là một phần của một chỉ mục toàn văn bản. Bạn không thể sử dụng một lệnh gọi tớiMATCH ()
để tìm kiếm tất cả các cột là một phần của tất cả các chỉ mục văn bản đầy đủ trong cơ sở dữ liệu của bạn. -
Fulltext chỉ lập chỉ mục các cột chỉ mục được xác định bằng
CHAR
,VARCHAR
vàTEXT
kiểu dữ liệu. -
Bạn có thể xác định một chỉ mục văn bản đầy đủ trong mỗi bảng.
Ví dụ:
TẠO danh mục BẢNG (id KHÓA CHÍNH SERIAL, tên VARCHAR (100), FULLTEXT INDEX ftcat (name)); TẠO BẢNG host_types (id KHÓA CHÍNH SERIAL, category_id BIGINT UNSIGNED, name VARCHAR (100), FULLTEXT INDEX ftht (name)); TẠO máy chủ BẢNG (id KHÓA CHÍNH SERIAL, host_id BIGINT UNSIGNED, category_id BIGINT UNSIGNED, name VARCHAR (100), FULLTEXT INDEX fthost (name)); TẠO sản phẩm BẢNG (id SERIAL PRIMARY KEY, name VARCHAR (100 ), từ khóa VARCHAR (100), uid VARCHAR (100), mô tả VARCHAR (100), INTEGER số lượng, giá NUMERIC (9,2), host_id BIGINT UNSIGNED, FULLTEXT INDEX ftprod (tên, từ khóa, mô tả, uid));
Và sau đó, bạn có thể viết một truy vấn sử dụng từng chỉ mục toàn văn tương ứng:
« 'cụm từ tìm kiếm') dưới dạng hscore, MATCH (products.name, products.keywords, products.description, products.uid) LẠI ('cụm từ tìm kiếm') dưới dạng điểm .host_id =host_types.idLEFT THAM GIA danh mục TRÊN host_types.category_id =category.id TRẬN ĐẤU (category.name) LẠI ('cụm từ tìm kiếm') HOẶC TRẬN (host_types.name) LẠI ('cụm từ tìm kiếm') HOẶC TRẬN ĐẤU (hosts.name) LẠI ('cụm từ tìm kiếm') HOẶC TRẬN (products.name, products.keywords, products.description, products.uid) CHỐNG LẠI ('cụm từ tìm kiếm') ĐẶT HÀNG THEO điểm số DESC;