Homepage selbermachen 7.852 Themen, 35.619 Beiträge

PHP: Suchmaschine die Datenbank durchsucht

Philipp15 / 5 Antworten / Baumansicht Nickles

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

bei Antwort benachrichtigen
Heinz_Malcher Philipp15 „PHP: Suchmaschine die Datenbank durchsucht“
Optionen

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'

bei Antwort benachrichtigen
xafford Philipp15 „PHP: Suchmaschine die Datenbank durchsucht“
Optionen

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.

Pauschalurteile sind immer falsch!!!
bei Antwort benachrichtigen
Heinz_Malcher xafford „wenn du eine datenbank durchsuchen willst, dann solltest du die betreffenden...“
Optionen

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?

bei Antwort benachrichtigen
Borlander Heinz_Malcher „@Frage an X und Ergänzung zu meinem Posting“
Optionen

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

bei Antwort benachrichtigen
Heinz_Malcher Borlander „Indizes“
Optionen

Sorry für die späte Danksagung :-)

Hat funktioniert ;)

bei Antwort benachrichtigen