Ein Kunde gibt den Produktnamen mit einem Tippfehler ein und erhält eine leere Ergebnisliste, obwohl das Produkt im Shop vorhanden ist. Ein ähnliches Problem betrifft die Dokumentation und umfangreiche Inhaltskataloge. Meilisearch ermöglicht es, deiner eigenen Anwendung eine fehlertolerante Suche hinzuzufügen. In diesem Leitfaden zeigen wir, wie du Meilisearch auf Saplo bereitstellst, die ersten Daten überträgst und eine Abfrage an die Suchmaschine ausführst.
Was ist Meilisearch und für wen ist es geeignet
Meilisearch ist eine Suchmaschine, die eine REST API bereitstellt. Du sendest ausgewählte Daten an sie, während deine Website die Ergebnisse über die API abruft. Sie eignet sich für einen Produktkatalog, eine Wissensdatenbank oder einen Artikeldienst. Anwendungsfälle findest du auf der Meilisearch-Hosting-Seite bei Saplo.
Die Installation allein verbindet den Shop nicht automatisch und erstellt auch kein Suchformular auf deiner Website. Du benötigst eine Integration, die die Daten überträgt und die Ergebnisse anzeigt. Plane zunächst eine kleine, öffentliche Datensammlung ein, beispielsweise die Namen und Beschreibungen einiger Produkte.
Anforderungen und Hosting-Kosten
Der günstigste Plan, der die Installationsanforderungen erfüllt, ist Box S für 27 € pro Jahr. Er ist der Ausgangspunkt für den Start des Dienstes; die Größe des Zielindex, die Häufigkeit des Imports und die übrigen Anwendungen in deiner Box beeinflussen den Ressourcenbedarf. Prüfe vor dem Import des gesamten App-Katalogs den verfügbaren Speicherplatz und den Arbeitsspeicher.
Bereite eine aktive Box, einen App-Namen sowie eine Domain oder eine verfügbare Subdomain *.saploapp.pl vor. Für die folgenden Beispiele benötigst du auf deinem eigenen Computer ein Bash-Terminal und das Programm curl. Du benötigst keinen SSH-Zugang zu Box: Die Installation nimmst du im Panel vor, die Startdatei lädst du über SFTP herunter, und die Abfragen sendest du über HTTPS.
Installation Schritt für Schritt
- Melde dich beim Saplo-Panel an und öffne den App-Katalog.
- Wähle Meilisearch und starte die Erstellung der Anwendung.
- Gib ihr einen Namen, zum Beispiel
wyszukiwarka, und wähle eine Box mit freien Ressourcen. - Wähle eine Domain oder Subdomain. Notiere dir die genaue HTTPS-Adresse, die im Panel angezeigt wird.
- Bestätige die Installation. Warte auf ihren Abschluss und prüfe den Anwendungsstatus sowie mögliche Meldungen.
- Verbinde dich per SFTP mit den Zugangsdaten der Box. Suche im App-Katalog die Datei
MEILISEARCH-SETUP.txtund lade sie herunter.
Der Saplo-Installer startet Meilisearch im Produktionsmodus und generiert einen Administrationsschlüssel. Die Startdatei enthält die API-Adresse und diesen Schlüssel. Die aus dem Entwicklungsmodus bekannte integrierte Suchvorschau ist deaktiviert. Daher ist das Fehlen eines Login-Panels unter der Hauptadresse kein Hinweis auf eine Fehlfunktion.
Erste Verbindung und Administrationsschlüssel
Setze im Bash-Terminal auf deinem eigenen Computer die Adresse aus der Startdatei ein, ohne abschließenden Schrägstrich:
MEILI_URL='https://YOUR-APP-ADDRESS'
curl -sS "$MEILI_URL/health"
Die richtige Antwort ist {"status":"available"}. Der Endpunkt prüft die Verfügbarkeit der Suchmaschine, wie in der Health-Check-Dokumentation beschrieben. Er bestätigt noch nicht, dass die Daten korrekt importiert wurden.
Lade den Administrationsschlüssel, ohne ihn auf dem Bildschirm anzuzeigen und ohne seinen Wert in den Befehlsverlauf zu schreiben:
read -r -s -p 'Meilisearch admin key: ' MEILI_ADMIN_KEY
printf '\n'
Füge den Wert aus der Startdatei ein und drücke die Eingabetaste. Dies ist der Meilisearch-Schlüssel, nicht das Passwort für Saplo. Verwende ihn nur in einer vertrauenswürdigen Administrationsumgebung. Packe ihn w kein JavaScript der Website, in kein Repository und in keine Screenshots. Die Dokumentation zu Meilisearch-Schlüsseln beschreibt die Regeln für die Trennung von Berechtigungen.
Erste Dokumente hinzufügen
Erstelle auf deinem Computer die Datei products-demo.json in UTF-8:
[
{"id": 1, "name": "Ceramic mug", "description": "White coffee mug"},
{"id": 2, "name": "Glass jug", "description": "Tea jug"}
]
Führe im selben Terminal im Verzeichnis der Datei Folgendes aus:
curl -sS -X POST "$MEILI_URL/indexes/products-demo/documents?primaryKey=id" \
-H "Authorization: Bearer $MEILI_ADMIN_KEY" \
-H 'Content-Type: application/json' \
--data-binary @products-demo.json
Das Feld id identifiziert das Dokument. Der erste Import erstellt den Index products-demo. Die Antwort enthält taskUid, also die Nummer des Indizierungsauftrags. Das Importschema wird im offiziellen Einstiegsleitfaden von Meilisearch beschrieben.
Überprüfung der Indizierung
Die Annahme eines Auftrags bedeutet nicht, dass die Arbeit abgeschlossen ist. Setze die im Feld taskUid erhaltene Nummer ein und überprüfe den Auftrag:
MEILI_TASK_ID='WPISZ_NUMER_TASKUID'
curl -sS "$MEILI_URL/tasks/$MEILI_TASK_ID" \
-H "Authorization: Bearer $MEILI_ADMIN_KEY"
Warte auf status: succeeded. Bei enqueued oder processing wiederhole die Überprüfung nach kurzer Zeit. Lies bei failed das Feld error und korrigiere die Daten vor dem erneuten Import. Informationen zur Warteschlange findest du in der Meilisearch-Dokumentation zu API-Aufträgen.
Separater Suchschlüssel
Erstelle einen Schlüssel mit der Berechtigung, ausschließlich im Beispielindex zu suchen:
curl -sS -X POST "$MEILI_URL/keys" \
-H "Authorization: Bearer $MEILI_ADMIN_KEY" \
-H 'Content-Type: application/json' \
--data-binary '{"description":"Search in the public demo catalog","actions":["search"],"indexes":["products-demo"],"expiresAt":null}'
Speichere den Wert key aus der Antwort. Die Einschränkung auf products-demo ist beabsichtigt: Ein Schlüssel für einen einzelnen Katalog sollte nicht den Zugriff auf alle Indizes ermöglichen. Ein solcher Schlüssel erlaubt das Abrufen von Suchergebnissen, verwende ihn im öffentlichen Frontend daher nur für Daten, die veröffentlicht werden sollen. Lege keine Kundendaten oder internen Notizen in diesen Index.
Lade den erhaltenen Schlüssel und sende eine Anfrage:
read -r -s -p 'Meilisearch search key: ' MEILI_SEARCH_KEY
printf '\n'
curl -sS -X POST "$MEILI_URL/indexes/products-demo/search" \
-H "Authorization: Bearer $MEILI_SEARCH_KEY" \
-H 'Content-Type: application/json' \
--data-binary '{"q":"mug"}'
In der Tabelle hits sollte das Dokument „Keramikbecher“ erscheinen. Wiederhole den Test mit der Anfrage kubke, um die Tippfehlertoleranz mit den Standardeinstellungen zu prüfen. Entferne nach Abschluss der Arbeit die Variablen aus dem Terminal:
unset MEILI_ADMIN_KEY MEILI_SEARCH_KEY
Anbindung der eigenen Website
Nach einem erfolgreichen Test wähle die Daten aus, die in den richtigen Index gelangen sollen. Lege fest, wann die Integration neue Datensätze hinzufügt, geänderte aktualisiert und zurückgezogene entfernt. Teste den gesamten Ablauf an einem Produkt, bevor du den vollständigen Import durchführst. Plane außerdem, wie der Index aus der Datenquelle wiederhergestellt werden kann.
Das Suchformular sollte einen separaten Schlüssel mit eingeschränkten Berechtigungen verwenden./develope für Inhalte, die eine Anmeldung erfordern, eine Zugriffskontrolle auf der Seite deiner Anwendung. Das bloße Verbergen eines Feldes in der Benutzeroberfläche schränkt den Zugriff über die API nicht ein.
Häufigste Fragen
Was kostet Meilisearch auf Saplo?
Der günstigste Plan, der die Anforderungen an die Installation erfüllt, ist Box S für 27 € pro Jahr. Bei einem größeren Datensatz solltest du den Ressourcenverbrauch beim Import und bei der Suche prüfen.
Warum sehe ich unter der Domain keine Suchfunktion?
Die Installation von Saplo läuft im Produktivbetrieb als API. Beginne mit /health und führe anschließend den Import und eine Abfrage anhand des Leitfadens aus. Das Formular für deine Nutzer fügst du auf deiner eigenen Website hinzu.
Was sollte ich bei einem Autorisierungsfehler prüfen?
Vergleiche die API-Adresse und den Schlüssel mit den Angaben der richtigen Installation. Der Header hat die Form Authorization: Bearer .... Ein Schlüssel mit ausschließlich der Berechtigung search kann weder zum Importieren von Dokumenten noch zum Verwalten von Schlüsseln verwendet werden.
Warum erscheinen nach dem Import keine Ergebnisse?
Prüfe zuerst den Aufgabenstatus. Vergleiche dann den Indexnamen in der Abfrage-URL mit dem Namen, der beim Import verwendet wurde. Prüfe außerdem, ob das Dokument den gesuchten Inhalt enthält.
Lädt Meilisearch die Produkte aus meinem Shop selbst?
Nein. Die Installation startet die Suchmaschine. Für die Datensynchronisierung und das Ergebnisformular sorgt die Integration mit deinem Shop oder deiner Anwendung.
Öffne das Meilisearch-Angebot auf Saplo, starte den Dienst und beginne mit zwei Beispieldokumenten. Wenn Import und Suche funktionieren, binde deinen eigenen Katalog an.
- #Meilisearch
- #Self-hosting
- #Anleitung
- #Suchmaschine
