Download the PHP package venne-media/venne-search-contao-bundle without Composer
On this page you can find all versions of the php package venne-media/venne-search-contao-bundle. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download venne-media/venne-search-contao-bundle
More information about venne-media/venne-search-contao-bundle
Files in venne-media/venne-search-contao-bundle
Package venne-search-contao-bundle
Short Description Volltext-Suche für Contao mit Live-Indexing von Seiten und Datei-Inhalten (PDF, DOCX, ODT, RTF). Tippfehler-Toleranz, mehrsprachig, ACL-aware.
License LGPL-3.0-or-later
Homepage https://venne-search.de
Informations about the package venne-search-contao-bundle
Venne Search · Contao Bundle
Volltext-Suche für Contao. Findet Inhalte in Seiten, Artikeln, Content-Elementen und Dateien (PDF, DOCX, ODT, RTF, TXT, MD) — mehrsprachig, mit Tags und anonymen Such-Analytics.
Die Plattform-Anbindung läuft über venne-search.de — das Bundle holt sich beim ersten Request einen scoped Meilisearch-Token und schreibt direkt in den passenden Index. Pro Site ein API-Key, fertig.
Was es kann
- Live-Indexing: Wenn du eine Seite speicherst oder eine Datei hochlädst, ist sie kurze Zeit später in der Suche
- Mehrsprachig: Pro Locale ein Index, automatische Sprach-Erkennung für Dateien (Pfad → Embedding → Filename) mit Override-Möglichkeit
- Tag-System mit Tree-Picker: Seitenbaum öffnen, per Klick oder Drag-&-Drop Tags zuweisen — Tags erscheinen klickbar als Filter in den Such-Treffern
- Anonymes Search-Analytics: Erfasst auf der Plattform welche Begriffe gesucht werden (kein IP, kein User-Agent, keine User-ID) — nützlich um Content-Lücken zu finden
- PDF-Inhalte durchsuchen: Texte aus PDFs werden extrahiert und indexiert
- Tippfehler-Toleranz:
KrabbnburgerfindetKrabbenburger - Diakritik-Folding:
cafefindetcafé,Cafe,CAFÉ - ß ↔ ss:
massefindetMaße - Schnell: Suchen unter 50 ms bei zehntausenden Dokumenten
- JSON-API unter
/vsearch/api?q=…für eigene Frontends - Permission-aware: geschützte Inhalte erscheinen nur in der Suche, wenn der eingeloggte Member auch wirklich Zugriff hat
Voraussetzungen
- Contao 4.13 oder 5.x (getestet auf 4.13, 5.3 und 5.7)
- PHP 8.1 oder neuer
- Aktiver Account auf venne-search.de
Installation
Wer den Contao-Manager nutzt: Paket suchen, installieren, Updates anwenden — der Manager ruft contao:migrate automatisch im Anschluss auf.
Konfiguration
- Auf venne-search.de einloggen → Dashboard → API-Keys → einen erzeugen
- Im Contao-Backend: System → Venne Search öffnen
- API-Key eintragen, Sprachen wählen, speichern
Das war's. Beim ersten Speichern fragt das Bundle den Endpoint und den scoped Token von venne-search.de ab und cached das eine Stunde.
Erste Indexierung
Im Backend bei „Venne Search" auf Vorschau & Indexieren klicken. Du siehst vorab:
- Wie viele Seiten und Dateien indexiert werden
- Wie viele schon im Index sind (werden übersprungen)
- Welche durch Berechtigungen ausgeschlossen sind
Danach läuft die Indexierung live durch. Pro Datei siehst du Anzahl Zeichen, Dauer und ETA. Bei Problemen klare Skip-Gründe wie „PDF passwortgeschützt", „PDF zu groß" oder „PDF enthält nur Bilder".
Sicherheit
Geschützte Inhalte (Member-Bereiche) bleiben geschützt. Zwei Modi zur Auswahl:
- Nur öffentlich erreichbare Inhalte (empfohlen, Default): geschützte Seiten und Dateien landen gar nicht erst im Index
- Auch geschützte Inhalte — Frontend filtert pro Mitglied: alles indexiert, anonyme Besucher sehen nur freie Treffer, eingeloggte Member zusätzlich ihre erlaubten geschützten — markiert mit einem Schloss-Icon
Zusätzlich gibt es einen Tree-Picker im Backend, mit dem du pro Klick einzelne Ordner aus dem Datei-Manager komplett von der Indexierung ausschließen kannst. Bei der ersten Migration werden — falls vorhanden — files/intern, files/admin und files/private automatisch vorausgewählt.
Im Frontend filtert Meilisearch hart bei jedem Such-Call:
Auch wenn versehentlich was Geschütztes im Index liegt, der Filter blockiert es zur Suchzeit.
Frontend einbauen
Variante 1: Contao-Frontend-Modul
Layout → Frontend-Module → Neues Modul → Typ Venne Search → ins Layout ziehen.
Variante 2: Eigenes Frontend per JSON-API
API-Antwort
Fehler-Codes der API
| HTTP | error |
Was bedeutet das |
|---|---|---|
| 401 | unauthorized |
Plattform-Key ungültig oder widerrufen |
| 402 | subscription_inactive |
Kein aktives Abo |
| 403 | not_provisioned |
Plattform-Admin muss den Key noch einrichten |
| 429 | rate_limited |
Zu viele Anfragen, kurz warten |
| 503 | platform_unreachable |
venne-search.de gerade nicht erreichbar |
Architektur in einem Bild
Der Master-Key bleibt bei der Plattform, das Bundle bekommt nur den Token für seinen eigenen Tenant. Alle Index-Calls werden zusätzlich gegen ein erwartetes UID-Pattern validiert — Defense in Depth.
Auto-Indexing
Diese Hooks sind aktiv, ohne dass du was tun musst:
- Speichern einer Seite, eines Artikels oder Content-Elements → indexiert
- Hochladen einer Datei im Datei-Manager → indexiert
- Löschen einer Datei → aus Index entfernt
Im Backend gibt es einen Toggle, der das Auto-Indexing komplett abschaltet — falls du den Index lieber gebündelt manuell aktualisierst. Pro Eintrag in der Tabelle „Indexierte Daten" gibt es einen Refresh-Knopf, mit dem du einzelne Dokumente neu indexieren kannst, ohne den ganzen Lauf anzustoßen.
Datei per FTP direkt auf den Server kopieren umgeht den Hook — dafür gibt's den Vorschau & Indexieren-Button im Backend, der die Datei dann beim nächsten Lauf erfasst.
Mehrsprachigkeit
Das Bundle indexiert pro Locale in einen eigenen Index — eine Site mit de,en,fr als aktive Sprachen hat drei Indexe. Pages bringen ihre Sprache aus tl_page.language mit; Dateien werden über fünf Strategien automatisch zugeordnet (in dieser Reihenfolge, erste die liefert gewinnt):
- Override aus den Settings (
file_locale_overridesJSON-Map) - Page-Embedding: Wo ist die Datei in
tl_content.singleSRC/multiSRCeingebunden? Dominante Sprache der Pages gewinnt. - Pfad-Hint:
files/de/...,files/en_US/... - Filename-Hint:
manual_de.pdf,flyer-en.pdf - Default:
default_file_localeaus den Settings, sonst erste aktive Locale
Du kannst pro Datei direkt im Documents-Panel die Sprache überschreiben — der Eintrag wird sofort reindexiert.
Beim Anlegen eines Frontend-Moduls oder Content-Elements vom Typ "Venne Search" wählst du eine feste Such-Sprache. Endnutzer wechseln die Sprache nicht selbst — sie sehen genau eine Suche, die zur aktuellen Seite passt.
Tag-System
Im Backend unter System → Venne Search zwei neue Bereiche:
- Seitenbaum-Tagging: Tree mit allen Seiten, pro Zeile aktuelle Tag-Chips. "+"-Button öffnet eine Combobox mit Live-Search; nicht existierende Tags lassen sich on-the-fly anlegen. Drag-&-Drop: Chip auf eine andere Page-Zeile ziehen = Tag mit-zuweisen. Jede Änderung triggert sofortiges Reindexing.
- Tag-Verwaltung: Eigene Tabelle
tl_venne_search_tagmit Slug, Label, Beschreibung, Farbe (8 vorgegebene Farben). Pro Tag wird die Anzahl der Zuweisungen direkt angezeigt. - Tag-Übersicht: Tabellarisch alle Tags mit Counts, Farb-Chips und Edit-Link.
Im Frontend werden Tag-Chips an jeden Treffer gehängt (tagsResolved mit slug, label, color). Klickbar als Filter via ?tags[]=spongebob&tags[]=krabbenburger. Mehrere Tags = AND-Verknüpfung (Meilisearch IN).
Die Migration übernimmt einmalig vorhandene tl_page.keywords-CSVs ins neue System — gleicher Slug = gleicher Tag.
Search-Analytics
Standardmäßig aktiv. Jede Suche auf deiner Site wird sofort und unsichtbar an venne-search.de geschickt — kein Cron, kein Worker, kein zusätzliches Setup. Du logst dich auf venne-search.de ein, gehst zu deinen API-Keys → Analytics und siehst Top-Suchen, Zero-Result-Rate (sehr wertvoll für SEO) und einen 30-Tage-Verlauf.
Was wird gespeichert: Suchbegriff, Sprache, Treffer-Anzahl, Zeitstempel. Was wird NICHT gespeichert: IP-Adresse, User-Agent, Cookies, Session-IDs, User-Account-Bezug.
Wenn du Analytics nicht möchtest, deaktivierst du im Backend unter System → Venne Search die Checkbox „Such-Analytics aktivieren". Der Such-Request läuft auch dann unverändert durch — nur ohne Tracking.
Lizenz
LGPL-3.0-or-later
Kontakt
- E-Mail: [email protected]
- Issues: GitHub
- Plattform: venne-search.de
All versions of venne-search-contao-bundle with dependencies
ext-json Version *
contao/core-bundle Version ^4.13 || ^5.0
meilisearch/meilisearch-php Version ^1.11
smalot/pdfparser Version ^2.12
symfony/config Version ^5.4 || ^6.4 || ^7.0
symfony/dependency-injection Version ^5.4 || ^6.4 || ^7.0
symfony/http-foundation Version ^5.4 || ^6.4 || ^7.0
symfony/http-kernel Version ^5.4 || ^6.4 || ^7.0
symfony/messenger Version ^5.4 || ^6.4 || ^7.0
symfony/yaml Version ^5.4 || ^6.4 || ^7.0