Tôi đang cố gắng thực hiện tìm kiếm toàn văn trong ba bảng riêng biệt và sắp xếp kết quả theo mức độ liên quan. Trong quá trình tìm kiếm câu trả lời, tôi phát hiện ra rằng tôi không thể sử dụng tìm kiếm toàn văn bản trong nhiều bảng. Vì vậy, tôi đã thêm một chỉ mục toàn văn riêng biệt cho mỗi cột tôi muốn tìm kiếm. Bây giờ vấn đề là tôi có thể thực hiện tìm kiếm nhưng tôi không thể phân loại như tôi muốn.mysql fulltext trên nhiều bảng
Dưới đây là bảng tôi
CREATE TABLE books (
bookID int(11) NOT NULL AUTO_INCREMENT,
title varchar(300) NOT NULL,
authorID int(11) NOT NULL,
FULLTEXT KEY title (title)
)
CREATE TABLE IF NOT EXISTS authors (
authorID int(11) NOT NULL AUTO_INCREMENT,
authorNamevarchar(200) NOT NULL,
FULLTEXT KEY authorName(authorName)
);
CREATE TABLE IF NOT EXISTS chapters (
chapterID int(11) NOT NULL AUTO_INCREMENT,
bookID int(11) NOT NULL,
content longtext NOT NULL,
FULLTEXT KEY content (content)
);
Và truy vấn sql của tôi. Đây là nơi tôi bị kẹt.
SELECT *,
MATCH(books.title) AGAINST('$q') as tscore,
MATCH(authors.authorName) AGAINST('$q') as ascore
MATCH(chapters.content) AGAINST('$q') as cscore
FROM books
LEFT JOIN authors ON books.authorID = authors.authorID
LEFT JOIN chapters ON books.bookID = chapters.bookID
WHERE
MATCH(books.title) AGAINST('$q')
OR MATCH(authors.authorName) AGAINST('$q')
OR MATCH(chapters.content) AGAINST('$q')
ORDER BY ???? DESC
Bây giờ với truy vấn này tôi có thể phân loại theo tiêu đề, tác giả hoặc nội dung. Những gì tôi muốn làm là, có được sự liên quan cho tất cả ba cột với nhau và ra lệnh cho kết quả đó.
Và, có, tôi biết các công cụ tìm kiếm khác như lucene hoặc sphinx, nhưng tôi không định sử dụng chúng ngay bây giờ.
Xin cảm ơn trước.
chính xác. cảm ơn. – keune
Giúp tôi tải. Cảm ơn! – youngcouple10
Rất đẹp, những gì tôi cần cho dự án của mình! – NaturalBornCamper