Recherche en texte intégral MySQL sur plusieurs tables
J'ai une série de tables qui contiennent les données que je veux de la recherche plein texte. J'ai essayé de combiner les tables avec UNION
mais le résultat perd son index de texte intégral ne peut donc pas être fulltext recherché. Je ne pense pas que le fait de mettre les données dans une table temporaire est le chemin à parcourir. Est-il d'une certaine manière que je peux recherche de texte intégral de ces tables de manière efficace? Merci à l'avance!
mise à JOUR:
ma requête de texte intégral a été
SELECT ID, Title, Description, Author, MATCH (Title,Tags,Body) AGAINST ("search terms") AS Relevance
FROM [combination of tables goes here]
WHERE MATCH (Title,Tags,Body) AGAINST ("search terms")
source d'informationauteur Samuel
Vous devez vous connecter pour publier un commentaire.
MySQL ne peut pas faire un fulltext (ou aucun) des index en travers de plusieurs tables. Donc, en utilisant un index unique est.
Comme alternative, vous pouvez soit:
Utiliser un index sur chaque table, et une jointure/union appropriées pour récupérer les lignes qui correspondent à vos besoins.
Créer un tableau d'ensemble pour appliquer l'index.
Utiliser un outil tel que lucene ou solr pour fournir votre index de recherche. (Si vous allez pour toute sorte d'échelle, c'est probablement la meilleure option)
Ajouter la pertinence de scores:
il suffit de faire:
indices sont utilisés comme ils sont avec une sélection normale.
Avec votre configuration en cours de ce qui semble être un type de panneau de message, je suppose que vous avez trois tables (corrigez-moi si je me trompe):
Voici comment j'allais le faire