Suchfunktionalität auf meiner Webseite?

3 Antworten

Vom Fragesteller als hilfreich ausgezeichnet
Wie sollte ich da vorgehen?

Du musst die zu durchsuchenden Daten im Backend erst einmal sammeln. Danach kannst du sie entweder dort oder im Browser filtern.

Mache dir erst einmal Gedanken über den genauen Ablauf der Suche, was sie genau berücksichtigen soll und welches Verhalten du haben möchtest (eine Suche nach ganzen Wörtern, Teilwörtern, Wörtern mit ähnlichem Wortklang, u.ä.).

Sollte die Suchfunktion rein im Frontend laufen (...) oder (...) über den Server(...)?

Das hängt von der Menge der zu durchsuchenden Daten ab sowie dem dafür notwendigen Rechenaufwand. Angenommen, du hast ein paar tausend Dokumente und möchtest die mit einer Volltextsuche durchleuchten, wäre das eher etwas, was für das Backend. Bräuchtest du hingegen nur einen Filter nach Dokumenttitel, ist das locker mit JavaScript getan.

Im Fall einer Volltextsuche würde es sich lohnen, eine Search Engine wie Elasticsearch, Lucene, Sphinx oder Xapian einzubinden.

Wenn sich die Daten für die Suche nicht zu häufig ändern, könntest du dir zudem überlegen, sie zumindest für eine bestimmte Zeit zwischenzuspeichern. Dafür reicht ein Dictionary, welches sich Suchanfragen im Verbund mit dessen Suchergebnissen merkt. Wenn eine Suchanfrage als Schlüssel im Dictionary bereits existiert, wird der damit assoziierte Wert zurückgegeben, andernfalls legt man einen neuen Eintrag an.

Im Browser wiederum kannst du Debouncing-Mechanismen implementieren, damit Suchanfragen nicht zu oft in kurzer Zeit neugestellt werden können.

00marcel000 
Fragesteller
 11.07.2023, 20:11

Vielen Dank für die ausführliche und große Hilfe :)

0

Wenn die Dokumente ja auf dieser Seite sind, brauchst du ja keine Suche, dann sind sie ja bekannt.

Ich nehme an, du möchtest die Dokumente auf der Ganzen Website (nicht nur einer Webseite) suchen.

Dann musst du natürlich auf dem Backend suchen.

PHP bietet sich da an.

Entweder direkt suchen oder aus Datenbank, beides ist möglich

00marcel000 
Fragesteller
 11.07.2023, 19:28

Okay, ich glaube ich habe es falsch beschrieben. Es soll eigentlich eine Filtersuchfunktion sein

0

Was willst du durchsuchen? Die Dokumente selbst als Volltextsuche? Da müsstest du sie optimal indixieren im Vorfeld, auf jeden Fall kommst du da frontendseitig nicht weiter.

Wenn du nur eine Suche nach dateinamen machen willst die alle direkt geladen werden kannst du mit javascript was basteln.

00marcel000 
Fragesteller
 11.07.2023, 19:49

Die Suche soll eigentlich eher ein Filter sein. Wenn ich 50 Einträge habe beispielsweise und Eintrag1 eingebe, möchte ich, dass in der Liste nur noch Eintrag1 zu sehen ist und die Einträge 2 - 50 ausgeblendet sind

0
00marcel000 
Fragesteller
 11.07.2023, 19:54

Schaue ich mir mal an. Vielen Dank für die schnelle Hilfe :)

0