Wyszukiwanie działające na dziesięciu tysiącach fragmentów potrafi przestać odpowiadać przy dziesięciu milionach.
Co rośnie
Czas wyszukiwania, zajętość pamięci i koszt składowania. Wszystkie trzy zależą od liczby fragmentów, nie od liczby dokumentów.
Ta różnica bywa zaskoczeniem. Kilkaset obszernych instrukcji daje więcej fragmentów niż kilkadziesiąt tysięcy krótkich wpisów, więc liczba plików w katalogu nie mówi o skali prawie nic. Rachunek zaczyna się od pytania, na ile części zostanie pocięty typowy dokument.
Zawężanie zbioru
Filtr po dziale, dacie czy typie dokumentu ogranicza przeszukiwany zakres. Najskuteczniejsze pojedyncze usprawnienie.
Warunek jest jeden: filtr musi działać przed wyszukiwaniem, nie na gotowej liście wyników. To wymaga zapisania pól opisowych obok osadzeń i jest jednym z głównych kryteriów wyboru miejsca składowania.
W większości firm wystarcza to na długo. Zanim zacznie się porównywać rozwiązania, warto sprawdzić, ile zapytań i tak dotyczy jednego działu albo jednego typu dokumentów.
Rozmiar osadzeń
Modele różnią się długością wyniku kilkukrotnie. Przy dużych zbiorach to bezpośrednio przekłada się na koszt.
Wybór jest tu wymianą jednego za drugie: krótszy wynik oznacza mniej miejsca i szybsze porównania, ale zwykle nieco gorszą trafność. Przy zbiorach niewielkich nie ma o czym mówić, przy dużych to jedna z pierwszych rzeczy do sprawdzenia.
Dwuetapowe wyszukiwanie
Szybkie zawężenie do kilkuset kandydatów, potem dokładniejsze uporządkowanie. Daje lepszą trafność bez przeszukiwania całości.
Drugi etap kosztuje jednak przy każdym zapytaniu, a nie raz przy indeksowaniu. Przy wyszukiwarce obsługującej ruch automatyczny ta pozycja potrafi urosnąć szybciej niż samo składowanie.
Co trzeba przygotować do pomiaru
Zbiór o docelowej wielkości, choćby powielony, oraz zestaw zapytań odpowiadający rzeczywistemu użyciu — z filtrami, jeśli mają być używane. Do tego pomiar w warunkach zbliżonych do pracy: wiele zapytań naraz, w trakcie trwającej aktualizacji indeksu. Pomiar pojedynczego zapytania na spokojnym systemie nie mówi nic użytecznego.
Pomiar na danych docelowych
Nie na próbce. Zbiór odpowiadający wielkością temu, co będzie za dwa lata, ujawnia problemy niewidoczne na małym.
Najczęściej ujawnia je nie samo wyszukiwanie, tylko aktualizacja. Dopisywanie i usuwanie fragmentów przy dużym indeksie potrafi zająć więcej czasu niż obsługa wszystkich zapytań razem wziętych.
Co ograniczyć
Nie wszystko trzeba indeksować. Dokumenty archiwalne i treści bez wartości wyszukiwawczej można wyłączyć — to najprostsza droga.
Do wyłączenia nadają się zwykle: kopie tego samego dokumentu, załączniki techniczne, stopki i szablony powtarzane w tysiącach plików. Zmniejszenie zbioru poprawia przy okazji trafność, bo z wyników znikają fragmenty, które i tak nikomu nie były potrzebne.
Warto też rozdzielić zbiory zamiast trzymać wszystko w jednym indeksie. Katalog produktów i archiwum zgłoszeń rzadko przeszukuje się razem, a osobne indeksy są mniejsze, szybsze i łatwiejsze do przeliczenia.
Kiedy problem jest pozorny
Przy zbiorach, które mieszczą się w pamięci zwykłego serwera, cała ta rozmowa jest przedwczesna. Firmowa baza wiedzy rzadko wyrasta poza ten poziom i optymalizowanie jej na zapas kosztuje więcej, niż daje.