Search & Filter
Wie SpeamCore Suche umsetzt — was funktioniert global vs. modul-spezifisch, wie performant ist das bei 100k+ Datensätzen.
Such-Ebenen
Globale Suche
Erreichbar über: ⌘+F (Mac) / Ctrl+F (Windows) oder Sidebar-Such-Icon.
Was wird durchsucht?
- Kunden-Namen, Adressen, USt-IdNr
- Lieferanten analog
- Produkt-Bezeichnungen
- Beleg-Nummern (Rechnungen, Aufträge)
- Mitarbeiter-Namen
- Kommentar-Felder (eingeschränkt — DSGVO)
Such-Algorithmus
- Tippfehler-tolerant (Levenshtein-Distance)
- Teilwort-Match („Mu" findet „Müller", „Musterm")
- Mehrere Wörter AND-verknüpft
- Anführungszeichen für exakte Phrasen
- Modul-Prefix möglich („customer:Beispiel" sucht nur Kunden)
Modul-Suche
Pro Modul-Liste oben rechts ein Such-Feld:
- Schnellsuche über die wichtigsten Spalten (Name, Nummer, ID)
- Live-Update — beim Tippen Filterung
- Reset über X-Button
Filter
Standard-Filter (UI)
Toolbar-Button Filter öffnet Filter-Bereich. Pro Spalte:
- Text: contains / equals / starts with
- Datum: gestern / letzte Woche / Datum-Range
- Auswahl: Multi-Select aus Stamm-Werten
- Zahlen: gte / lte / Range
Filter-Vorlagen
- Sachbearbeiter kann Filter speichern als „Meine Woche", „Top-Kunden"
- Vorlagen sind nutzer-spezifisch
- Ein-Klick-Anwendung später
Erweiterte Filter (POST-API)
Über API mit komplexen Bedingungen:
{
"filter": {
"AND": [
{ "status": "active" },
{ "OR": [
{ "name": { "contains": "Müller" } },
{ "ustId": "DE123" }
]
}
]
}
}
Mehr in API CRUD-Patterns.
Performance-Tricks
Bei vielen Datensätzen (>10k)
- Filter setzen vor offener Liste — Initial-Filter „nur Aktive"
- Pagination klein halten — 50-100 pro Page, nicht 500
- Sortierung indexiert — bei Custom-Sort Performance-Degradation möglich
- Bulk-Aktionen statt Schleife (siehe Tipps & Tricks)
Bei Datensätzen mit vielen Sub-Daten
- Sparse Fieldsets über
?fields=id,name(API) - Include sparsam —
?include=locationsist teuer - Cursor-basierte Pagination für sehr lange Listen
Indexierung im Hintergrund
Bestimmte Felder sind DB-indexiert für schnelle Suche:
customers.name,customers.number,customers.ustIdsalesDocuments.number,salesDocuments.customerIdworkorders.number,workorders.employeeId- alle Datums-Felder mit Standard-Filter
- alle Status-Felder
Cross-Modul-Suche basiert auf einem Such-Index der nachts neu gebaut wird (für nicht-indexierte Felder wie Kommentare).
Such-Anti-Patterns
- ❌ Wildcard am Anfang — „%Müller" ist langsam, ohne Index
- ❌ Volltext in Kommentaren alle Beleg-Felder durchsuchen — nur relevante
- ❌ Zu kurze Such-Strings — „a" liefert Tausende Treffer
- ❌ Komplexe Conditions ohne Indizes
DSGVO-Aspekte
- Personal-Daten-Suche wird im Audit-Log protokolliert (wer hat nach welchem MA gesucht)
- Bei Auskunfts-Anfrage alle Such-Treffer + Inhalte exportieren
- Bei Löschung wird Such-Index entsprechend bereinigt
KI-Chat als alternative Suche
Statt Filter zu konfigurieren, im KI-Chat fragen:
Welche Kunden haben offene Posten >30 Tage in Stuttgart?
KI baut die Filter automatisch und zeigt Resultate. Schneller als Filter-UI bei komplexen Fragen.
Verwandte Doku
- Tabellen-Bedienung — UI-Filter im Detail
- API CRUD-Patterns — programmatische Suche
- Tipps & Tricks — Such-Routinen