PHP: So verwenden Sie MySQL FullText -Suche und verarbeiten Sie das FullText -Suchergebnis
-
18-09-2019 - |
Frage
Ich habe versucht, MySQL FullText -Suche in meinem Intranet zu verwenden. Ich wollte es verwenden, um in mehreren Tabellen zu suchen und die unabhängigen Ergebnisse abhängig von den Tabellen auf der Ergebnisseite zu erhalten.
Das habe ich für die Suche getan.
$query = "
SELECT *
FROM testtable t1, testtable2 t2, testtable3 t3
WHERE match(t1.firstName, t1.lastName, t1.details) against(' ".$value."')
or match(t2.others, t2.information, t2.details) against(' ".$value."')
or match(t3.other, t2.info, t2.details) against(' ".$value."')
";
$result = mysql_query($query)or die('query error'.mysql_error());
while($row = mysql_fetch_assoc($result)){
echo $row['firstName'];
echo $row['lastName'];
echo $row['details'].'<br />';
}
Haben Sie Ideen zur Optimierung der Abfrage und zum Format der Ausgabe von Suchergebnissen?
Lösung
Sie können keine erstellen fulltext index
auf mehreren Tischen. Also finde ich eine fulltext index
auf jeden Tisch und or
Klauseln (genau wie Sie) gut genug.
Sie können jedoch eine Ansicht erstellen (basierend auf den drei Tabellen) und den FullText -Index gegen diese Ansicht erstellen.
Bearbeiten: Leider können Sie in einer Ansicht in MySQL keinen Index erstellen
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow