How it works
Der Index
Section titled “Der Index”Sieve führt einen vorab erstellten Index der filterbaren Werte jedes Produkts: Kategorien, Schlagwörter, Attribute, Preis, Lagerstatus, Angebotsstatus und Bewertung. Gefilterte Abfragen lesen diesen Index, statt langsame Live-Joins auszuführen, was große Kataloge schnell hält.
Jedes Produkt wird über alle Quellen hinweg vollständig indexiert, unabhängig davon, welche Facetten aktuell angezeigt werden. Das bedeutet, dass das Hinzufügen oder Entfernen einer Facette eine sofortige Einstellungsänderung ist, ohne dass eine erneute Indexierung erforderlich ist.
Der Index wird automatisch aktualisiert, wenn ein Produkt erstellt, aktualisiert, in den Papierkorb verschoben oder gelöscht wird. Verwenden Sie nach einem Massenimport Rebuild index auf dem Sieve-Adminbildschirm.
Wie Filter aufgelöst werden
Section titled “Wie Filter aufgelöst werden”Wenn ein Käufer Werte auswählt, löst Sieve die passenden Produkte aus dem Index auf:
- Innerhalb einer einzelnen Facette werden ausgewählte Werte mit ODER kombiniert. Die Auswahl von zwei Kategorien zeigt Produkte aus der einen oder der anderen.
- Über Facetten hinweg werden die Mengen mit UND kombiniert. Eine Kategorie plus eine Preisspanne zeigt Produkte, die auf beides zutreffen.
Abhängige Zähler
Section titled “Abhängige Zähler”Jeder Facettenwert zeigt einen Zähler an, wie viele Produkte übereinstimmen. Diese Zähler sind abhängig: Sie berücksichtigen die anderen aktiven Filter, sodass die Zahlen wahrheitsgetreu bleiben, während ein Käufer seine Auswahl eingrenzt. Die eigene Auswahl einer Facette ist von ihren Zählern ausgenommen, sodass ihre Optionen nie auf eine einzige Möglichkeit zusammenfallen.
Rendering und Core Web Vitals
Section titled “Rendering und Core Web Vitals”Der anfängliche Filter wird serverseitig gerendert und dann durch ein kleines, abhängigkeitsfreies Skript erweitert. Wenn sich die Ergebnisse ändern, werden nur die betroffenen Fragmente an Ort und Stelle ausgetauscht, wobei die Höhe des Ergebnisbereichs während der Abfrage reserviert bleibt. Das vermeidet Layout-Verschiebungen und hält die Interaktion flüssig. Eingaben werden entprellt (debounced) und der Austausch gibt dem Haupt-Thread Vorrang, um die Reaktionsfähigkeit zu schützen.