Mam bazę danych z tabelką zawierającą w jednym z pól nr seryjny postaci: A12130/A340/341
Aplikacja korzystająca z bazy wyszukuje często po owym numerze i to wyszukuje w sposób szczególny.
Mianowicie:
Pytając o frazę '121' baza ma zwrócić każdy numer seryjny zawierający gdziekolwiek tą frazę, czyli zwróci:
A12130/A340/341
A11130/B121/341
A11130/A340/121
A13121/C340/341
itp.
Do tej pory działało to na MySQL i korzystając z zapytania postaci:
Kod: Zaznacz cały
SELECT * FROM tabela WHERE serial LIKE '%121%';
Teraz jednak przesiadamy się na PostgreSQL i tu niestety ta sama operacja trwa 15s! Pomijam już wersję ILIKE której przetwarzanie trwa 1.3m!
Podobno można zindeksować taką kolumnę i korzystać z Full Text Search tylko niestety nie mam pojęcia jak się zabrać za skonfigurowanie słowników i praserów tak aby wyniki były takie jakich oczekuję.
Może ktoś pomoże?
P.S.
Próbowałem już modułu pg_trgm ale rezultaty nie są najlepsze.