PHP: So verwenden Sie MySQL FullText -Suche und verarbeiten Sie das FullText -Suchergebnis

StackOverflow https://stackoverflow.com/questions/2400694

  •  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?

War es hilfreich?

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
scroll top