2017-09-10 1 views

Antwort

2

Das Problem mit einer statischen Site und Suche zusammen ist, dass man per Definition statisch ist, während der andere ist sehr dynamisch. So gibt es keine einfache Möglichkeit, die beiden glücklich miteinander zu leben.

Flatfile CMS sind keine statischen Websites. Während das Analysieren von Dateien teurer ist als das Parsen von Datenbanken (normalerweise?), Kann eine Suchfunktion einfach durch das zugrundeliegende CMS bereitgestellt werden. Suchen Sie nach Plug-ins, die das liefern können, was Sie möchten.

Es gibt jedoch einige nicht triviale Lösungen, die erreichen können, was Sie wollen, abhängig von Ihrer Infrastruktur und Ihrer Volumetry und wenn Sie Site-Server-Berechnungen erreichen können oder nicht (grav can, gatsby und hugo nicht).

Die einfachste Möglichkeit besteht darin, einen Index für alle Inhalte in einer speziellen Datei zu erstellen, diese dann zu laden und die Client-Seite zu durchsuchen. Sie können sogar bereits erstellte Pakete verwenden, um die Entwicklungszeit für diese Option zu beschleunigen. (zum Beispiel: https://www.npmjs.com/package/react-fuzzy-search)

Das Pro ist, dass es ziemlich trivial ist zu tun. Der Nachteil ist, dass der Index mit der großen Seite ziemlich groß wird und die ganze Suche clientseitig erfolgt (also möglicherweise eine lange Wartezeit für den Benutzer, wenn der Index groß genug ist). Diese Lösung wird auch NICHT gut skalieren.

Eine andere Möglichkeit besteht darin, einen Suchdienst (als SAAS oder in Ihren eigenen Räumlichkeiten) zu verwenden, um die Suchfunktionalität zu externalisieren. Im Grunde läuft dieser Dienst auf Ihrem Server, hat eine Möglichkeit, Ihre Inhalte zu indizieren (über eine API) und zu suchen (zB über eine API). Stellen Sie nur sicher, dass die Such-API öffentlich ist und Sie sie in Echtzeit von der Client-Seite abfragen können.

Diese Lösung skaliert wirklich gut, weil diese Art von Dienstleistungen von Grund auf Maßstab gemacht werden! Die Einrichtungskosten sind jedoch sehr hoch und es lohnt sich nicht, wenn Sie nicht auf Millionen von Seiten skalieren möchten.

Verwandte Themen