Ocena funkcji wyszukiwania
Jak oszacować funkcjonalność wyszukiwania: trafność, ranking, filtrowanie oraz to, kto jest właścicielem indeksu. Pytania, dzięki którym „dodanie paska wyszukiwania” staje się rzeczywistym oszacowaniem.
„Dodaj pasek wyszukiwania” oznacza w rzeczywistości: „wybierz wyszukiwarkę, stwórz model trafności i przejmij indeks na zawsze”.
Wyszukiwanie obejmuje dwa aspekty, o których w zgłoszeniu nie ma ani słowa. Pierwszy to trafność: co sprawia, że jeden wynik jest lepszy od innego i kto o tym decyduje? Drugi ma charakter operacyjny: gdzie znajduje się indeks, w jaki sposób jest on synchronizowany ze źródłem danych i co się dzieje, gdy pojawia się opóźnienie? „Dodaj wyszukiwanie” sugeruje obecność elementu sterującego w interfejsie użytkownika. Praca ta dotyczy ustalania rankingu oraz indeksu.
Zespół, który już wcześniej wdrażał funkcję wyszukiwania, wie, że odpowiedź rzadko kiedy jest taka sama za każdym razem. Wyszukiwanie pełnotekstowe w Postgresie sprawdza się dobrze, dopóki nie pojawi się potrzeba uwzględnienia literówek. Elasticsearch działa szybko, dopóki nie trzeba za niego płacić w weekendy. Algolia jest łatwa w użyciu, dopóki nie potrzebuje się niestandardowego rankingu. Szacunkowy czas realizacji zależy od tego, na jakie kompromisy zdecyduje się zespół, a decyzja ta zazwyczaj nie została jeszcze podjęta w momencie, gdy zgłoszenie trafia do etapu dopracowywania.
O czym się mówi w tym pomieszczeniu
Backend: „Postgres może to zrobić za pomocą
tsvector.”PM: „Czy literówki powinny być zgodne? A co z liczbą mnogą?”
Interfejs użytkownika: „Czy wprowadzamy funkcję autouzupełniania, czy też wyniki będą wyświetlane dopiero po naciśnięciu przycisku ‘Prześlij’?”
SRE: „W jaki sposób zapewniamy synchronizację indeksu? Za pomocą wyzwalaczy? Zadania? Strumienia?”
Wstęp: „Kto decyduje o trafności wyników, gdy ktoś narzeka, że właściwa odpowiedź znajduje się na drugiej stronie?”
Pytania, które warto zadać przed oddaniem głosu
- Jaki korpus — ile dokumentów, jak często ulegają one zmianom?
- Postgres FTS, dedykowana usługa wyszukiwania czy rozwiązanie hostowane (Algolia, Typesense)?
- Tolerancja błędów ortograficznych, stemming, synonimy, formy liczby mnogiej — które z tych elementów są objęte zakresem?
- Filtrowanie i filtry, czy po prostu jedna lista rankingowa?
- W jaki sposób indeks pozostaje zsynchronizowany — i na czym polega limit przedawnienia danych?
- Kto zapewnia trafność w perspektywie długoterminowej i w jaki sposób ją dostosowuje?
Jeśli wybór infrastruktury pozostaje nadal otwarty, decyzja ta stanowi spike, a nie zadanie — należy oszacować zakres spike’a i ponownie oszacować nakład pracy związany z wdrożeniem, gdy tylko wyznaczone zostanie osoba odpowiedzialna za dany obszar.
Pole wyszukiwania to dzień. Trafność i indeks to cechy — proszę je oszacować.
Zobacz szacowanie integracji płatności — ten sam schemat, w którym niewielka część widoczna publicznie kryje za sobą rozbudowaną strukturę operacyjną — oraz inne przykłady praktycznych szacowań. Można też rozpocząć bezpłatną sesję planowania pokerowego, gdy kwestia istotności ma wyznaczonego odpowiedzialnego.