Estoy tratando de hacer una búsqueda de texto completo en tres tablas separadas y ordenar los resultados por relevancia. Durante mis búsquedas de la respuesta, descubrí que no puedo usar la búsqueda de texto completo en varias tablas. Así que agregué un índice completo de texto completo para cada columna que quiero buscar. Ahora el problema es que puedo hacer la búsqueda, pero no puedo hacer la clasificación como me gustaría.mysql texto completo en tablas múltiples
Aquí está mi tablas
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)
);
Y mi consulta SQL. Aquí es donde estoy atascado.
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
Ahora con esta consulta puedo hacer la clasificación por títulos, autores o contenidos. Lo que quiero hacer es obtener la relevancia de las tres columnas juntas y ordenar los resultados por eso.
Y sí, estoy al tanto de otros motores de búsqueda como lucene o sphinx, pero no estoy planeando usarlos ahora.
Gracias de antemano.
. Gracias. – keune
me ayudó a cargar. ¡Gracias! – youngcouple10
¡Muy bonito, lo que necesitaba para mi proyecto! – NaturalBornCamper