Hallo,
weiss einer von Euch, ob es eine auf PHP basierende
Suchmaschine gibt, die eine MySQL Datenbank z.B.
nach bestimmten Stichpunkten durchsuchen kann??
Philipp
Hallo,
weiss einer von Euch, ob es eine auf PHP basierende
Suchmaschine gibt, die eine MySQL Datenbank z.B.
nach bestimmten Stichpunkten durchsuchen kann??
Philipp
Meinst du eine gesamte DB inclusive aller Tabellen oder eine Tabelle durchsuchen?
Den Befehl, alle Tabellen mit einem Befehl zu durchsuchen gibt es glaube ich nicht, es bleibt nur die Möglichkeit, die Tabellen als Array zu exploden bzw. imploden.
Wenn du aber die Funktion suchst, eine Tabelle nach stichworten zu durchsuchen, das geht recht einfach:
select * from tabelle where feld = '$suchwort'
wenn du eine datenbank durchsuchen willst, dann solltest du die betreffenden felder mit index belegen, dann funktioniert das durchsuchen schneller.
eine einfache ähnlichkeitssuche, wenn du z.b. auch wortbestandteile finden willst, dann funktioniert dies z.b. über
SELECT * FROM tabelle WHERE feld LIKE '%suchstring%'
man kann die suchanfrage dann noch weiter modifizieren, daß die semantisch ähnliche begriffe findet oder groß- und kleinschreibung mbeachtet/mißachtet. es gibt dafür speziell implementierte funktionen in z.b. MySQL.
Ergänzung: search.nickles.de z.b lässt auch begriffe zu, die man nicht suchen will, dann könnte man z.b. kombinieren:
where $feld ='!$begriff".....
@Xafford
Was meinst du mit index belegen?
Hallo Heinz,
bin zwar != xafford, werde mich aber trotzdem mal Deiner Frage annehmen.
Was meinst du mit index belegen?
Die Datensätze in einer Tabelle werden einfach in der Reihenfolge des Einfügens gespeichert. Neue Datensätz werde also am Ende angehängt. Fürs Suchen müssen also alle Datensätze durchgegangen werden fürs Sortieren ist das noch wesentlich aufwendiger. Legt man nun einen Index an wird zusätzlich zur Tabelle eine sortierte Fassung gespeichert (bzw. Zeiger auf die Datensätze). Das ganze geschiet üblicherweise in Binärbäumen. Die Suche läuft damit wesentlich dann schneller, weil nur ein Bruchteil der Vergleichsopereationen nötig ist, um einen Eintrag zu finden.
CU Borlander
Sorry für die späte Danksagung :-)
Hat funktioniert ;)