Skip to content
← Wszystkie wpisy
5 min czytania Dawid Skłodowski

Strojenie trafności wyszukiwania dla e-commerce

Otrzymanie wyników wyszukiwania jest łatwe; otrzymanie właściwych produktów we właściwej kolejności to prawdziwa praca. Deep-dive o strojeniu trafności dla sklepu — boostowanie sygnałami biznesowymi, synonimy, obsługa literówek, zero wyników i mierzenie, czy twoje zmiany naprawdę pomagają.

Gdy masz już działające wyszukiwanie — FTS Postgresa albo Elasticsearch, zindeksowane i odpytujące — odkrywasz, że zwracanie dopasowań było łatwymi 20%. Trudne 80% to trafność: sprawienie, by właściwe produkty pojawiały się we właściwej kolejności dla tego, co każdy klient faktycznie miał na myśli. W sklepie to nie udogodnienie; wyszukiwanie to jedna z najlepiej konwertujących ścieżek do sprzedaży, a klient, który nie zobaczy tego, czego chciał, w pierwszych kilku wynikach, nie kupuje nic. Strojenie trafności to miejsce, gdzie wygrywa się jakość wyszukiwania — i przychody. Oto co to faktycznie obejmuje.

Trafność to nie tylko dopasowanie tekstu

Instynkt to szeregowanie według tego, jak dobrze tekst zapytania pasuje do tekstu produktu, i to jest punkt startu, nie odpowiedź. Czysta trafność tekstowa z radością uszereguje niejasny, niedostępny produkt nad bestsellerem, bo niejasny akurat częściej powtórzył słowo zapytania. Dla sklepu najlepszym wynikiem nie jest najbliższe dopasowanie tekstu — to produkt, który klient najpewniej kupi. To oznacza, że trafność musi mieszać dopasowanie tekstu z sygnałami biznesowymi:

  • Popularność / sprzedaż. Produkt, który dobrze sprzedaje się dla tego zapytania, powinien szeregować się nad tym, który pasuje tekstowo równie dobrze, ale nigdy się nie sprzedaje.
  • Dostępność. Niedostępny produkt to ślepy zaułek; powinien szeregować się niżej niż dostępne (albo być filtrowany, zależnie od polityki) — pokazywanie klientom rzeczy, których nie mogą kupić, to czyste tarcie.
  • Marża lub strategiczny priorytet. Czasem biznes naprawdę chce faworyzować linie o wyższej marży albo promowane — prawowite wejście, używane z troską.
  • Świeżość / nowość. Nowości mogą zasługiwać na boost w katalogach modowych lub sezonowych.

W Elasticsearch to function scoring: wynik dopasowania tekstu jest mnożony lub uzupełniany funkcjami tych sygnałów.

# zmieszaj trafność tekstu z sygnałami biznesowymi
Product.search(query: {
  function_score: {
    query: { multi_match: { query: q, fields: ["name^3", "description"] } },
    functions: [
      { filter: { term: { in_stock: true } }, weight: 2 },        # preferuj kupowalne
      { field_value_factor: { field: "sales_count", modifier: "log1p" } } # popularne wyżej
    ],
    boost_mode: "multiply"
  }
})

Sztuka tkwi w wagach — ile każdy sygnał liczy się względem dopasowania tekstu. Za dużo wagi biznesowej i wyszukiwanie ignoruje to, co klient wpisał; za mało i bestseller chowa się na stronie trzeciej. Nie ma wzoru; to iteracyjne strojenie wobec realnych zapytań.

Synonimy i rozumienie zapytania

Klienci i twój katalog często używają różnych słów dla tej samej rzeczy — „trainers” vs „sneakers”, „telly” vs „television”, nazwa marki pisana na trzy sposoby. Jeśli tekst twojego produktu mówi jedno, a klient wpisuje drugie, czyste dopasowanie nie zwraca nic, a klient dochodzi do wniosku, że tego nie masz. Synonimy zamykają tę lukę: pielęgnowany słownik traktujący równoważne terminy jako to samo w czasie wyszukiwania.

# synonyms.txt
trainers, sneakers, plimsolls
tv, telly, television

Synonimy to jedna z inwestycji w trafność o najwyższym ROI, bo bezpośrednio odzyskują wyszukiwania, które inaczej nie zwróciłyby nic. Potrzebują też pielęgnacji od ludzi znających domenę i słownictwo klientów — tu strojenie wyszukiwania staje się współpracą z zespołem merchandisingu, nie tylko zadaniem inżynierskim. Poza synonimami, rozumienie zapytania — rozpoznanie, że „czerwone buty do biegania rozmiar 10” zawiera kolor, kategorię i rozmiar — pozwala kierować części zapytania do właściwych pól i faset, głębsza inwestycja opłacająca się na katalogach z bogatymi atrybutami.

Tolerancja literówek, dostrojona

Omówiliśmy rozmyte dopasowanie wcześniej; dla handlu niuansem jest ile rozmycia. Klienci robią literówki nieustannie, więc trochę tolerancji jest niezbędne — „addidas” musi znaleźć „Adidas”. Ale za dużo rozmycia to własna porażka: dopasuj zbyt luźno, a „boot” zwraca „boat”, „shirt” zwraca „short”, a trafność zapada się w szum. Dostrój odległość edycyjną długością terminu (krótkie słowa tolerują mniej edycji) i wolej dopasowania dokładne oraz prefiksowe nad rozmytymi w szeregowaniu, by prawdziwe dopasowanie zawsze biło rozmyte zgadnięcie. Tolerancja literówek to gałka, nie przełącznik.

Traktuj zero wyników jako zaprojektowane doświadczenie

Każdy sklep ma zapytania, które prawowicie nie zwracają nic, a strona zero wyników to zdarzenie konwersji, które kontrolujesz. Puste „brak wyników” to ślepy zaułek; dobre doświadczenie zero wyników trzyma klienta w lejku:

  • Rozluźnij zapytanie automatycznie — porzuć najbardziej restrykcyjny term, poszerz rozmycie i pokaż „pokazujemy wyniki dla najbliższego dopasowania” zamiast niczego.
  • Sugeruj alternatywy — popularne produkty, powiązane kategorie, „czy chodziło ci o”.
  • Loguj każde zapytanie zero wyników. To złoto: bezpośrednia lista popytu, którego nie zaspokajasz — produktów, których klienci chcą, a których albo nie masz, albo brakuje synonimów/trafności. Przeglądanie zapytań zero wyników to jedna z najbardziej produktywnych czynności trafności.

Mierz, albo zgadujesz

To dyscyplina oddzielająca strojenie trafności od majsterkowania przy trafności: nie poprawisz tego, czego nie mierzysz, a trafność wydaje się subiektywna, dopóki jej nie zinstrumentujesz. Sygnały mówiące, czy zmiana pomogła:

  • Współczynnik klikalności wyników i ranga kliknięć — czy ludzie klikają górne wyniki, czy je przewijają?
  • Współczynnik konwersji wyszukiwania — czy wyszukiwania prowadzą do dodania do koszyka i zakupu?
  • Współczynnik zero wyników — jaka frakcja wyszukiwań nic nie znajduje?
  • Doprecyzowanie / porzucenie wyszukiwania — czy klienci od razu wyszukują ponownie (znak, że pierwsze wyniki chybiły)?

Z tym zinstrumentowanym strojenie trafności staje się empiryczną pętlą: zmień wagę albo dodaj synonimy, obserwuj metryki, zachowaj to, co pomaga. Idealnie testuj A/B zmiany szeregowania, bo intuicja trafności jest często błędna, a dane są arbitrem. Bez pomiaru bez końca podkręcasz wagi na podstawie tego, które zapytanie akurat wypróbował interesariusz dziś rano.

Werdykt

Trafność wyszukiwania to miejsce, gdzie wyszukiwanie sklepu przestaje być funkcją, która działa, a staje się funkcją, która sprzedaje. Właściwym wynikiem jest produkt, który klient kupi, nie najbliższe dopasowanie tekstu — więc zmieszaj punktację tekstu z sygnałami biznesowymi (popularność, dostępność, marża) przez function scoring, dostrojone z troską, by żaden nie dominował. Zainwestuj w synonimy i rozumienie zapytania, by odzyskać wyszukiwania, które inaczej by zawiodły, dostrój tolerancję literówek jako gałkę i zaprojektuj stronę zero wyników jako doświadczenie trzymające w lejku, kopiąc jej logi w poszukiwaniu niezaspokojonego popytu. Przede wszystkim zinstrumentuj to — klikalność, konwersja wyszukiwania, zero wyników, doprecyzowanie — by strojenie było empiryczne, nie zabobonne. Trafność nigdy nie jest „skończona”; to ciągła, napędzana danymi współpraca inżynierii i merchandisingu, a w sklepie to jedna z najwyższej dźwigni prac, jakie możesz wykonać.