Jak to działa
Sieve utrzymuje wcześniej zbudowany indeks filtrowalnych wartości każdego produktu: kategorii, tagów, atrybutów, ceny, stanu magazynowego, promocji i oceny. Zapytania filtrów czytają ten indeks zamiast wykonywać wolne live joiny, co utrzymuje dobrą wydajność dużych katalogów.
Każdy produkt jest indeksowany dla wszystkich źródeł, niezależnie od tego, które filtry są aktualnie widoczne. Dlatego dodanie albo usunięcie filtra jest natychmiastową zmianą ustawień i nie wymaga ponownego indeksowania.
Indeks aktualizuje się automatycznie, gdy produkt jest tworzony, edytowany, przenoszony do kosza albo usuwany. Po imporcie masowym użyj Rebuild index na ekranie Sieve.
Rozstrzyganie filtrów
Dział zatytułowany „Rozstrzyganie filtrów”Gdy klient wybiera wartości, Sieve wylicza pasujące produkty z indeksu:
- W jednym filtrze wybrane wartości są łączone przez OR. Dwie kategorie pokazują produkty z jednej albo drugiej.
- Między filtrami zestawy są łączone przez AND. Kategoria i zakres ceny pokazują produkty spełniające oba warunki.
Liczniki zależne
Dział zatytułowany „Liczniki zależne”Każda wartość filtra pokazuje liczbę pasujących produktów. Liczniki są zależne, czyli uwzględniają pozostałe aktywne filtry i pozostają prawdziwe podczas zawężania wyników. Własny wybór danego filtra jest wykluczony z jego liczników, więc opcje nie zapadają się do jednej wartości.
Renderowanie i Core Web Vitals
Dział zatytułowany „Renderowanie i Core Web Vitals”Pierwszy filtr jest renderowany po stronie serwera, a potem ulepszany małym skryptem bez zewnętrznych zależności. Gdy wyniki się zmieniają, podmieniane są tylko potrzebne fragmenty, a wysokość obszaru wyników jest rezerwowana na czas zapytania. To ogranicza przesunięcia układu i utrzymuje szybką interakcję. Dane wejściowe są debounce’owane, a podmiana oddaje czas głównemu wątkowi, żeby chronić responsywność.