Cytat
A gdyby tak się wedrzeć na umysłów górę, / Gdyby stanąć na ludzkich myśli piramidzie, / I przebić czołem przesądów chmurę, / I być najwyższą myślą wcieloną. . . Juliusz Słowacki, Kordian
dswistowski - 12-09-2007 00:15 postgresql 8.2, tsearch2
Wszystko mi bardzo szybko działa (milion dokumentów poindeksowane za pomocą indeksu GiN), wyszukanie relewantnych dokumentów poniżej sekundy. Do tseracha użyłem słownika polskiego ispell + tezaurus + stop wordsy, konfigurując analogicznie jak to się robi dla wyszukiwania po niemiecku. I tu zaczyna się problem, dla każdego połączenia pierwsza zamiana czegokolwiek na ts_vector trwa kilkanaście sekund, ale tylko dla mojej konfiguracji słownika tzn gdy wykonuje: select to_tsvector('default','lorem ipsum') -- nie trzeba czekać natomiast przy: select to_tsvector('polish_ispell_thz', 'lorem ipsum') -- czeka się i czeka.
Następne zapytanie używające konfiguracji 'polish_ispell_thz' trwa już normalnie kilka milisekund. Doszedłem więc do tego że tsearch2 przez te kilkanaście sekund wczytuje słownik ispella i tezaurius. Można wymusić aby postgres cachował sobie jakoś przetworzone słowniki a nie wczytywał je dla każdego nowego połączenia? Czy może jest jakiś inny sposób na skrócenie czasu pierwszego zapytania?
hubert depesz lubaczewski - 12-09-2007 00:15
Dnia 11.09.2007 dswistowski <dswistowski@gmail.com> napisał/a: > Doszedłem więc do tego że tsearch2 przez te kilkanaście sekund > wczytuje słownik ispella i tezaurius.
i bardzo słusznie się domyśliłeś.
> Można wymusić aby postgres cachował sobie jakoś przetworzone słowniki > a nie wczytywał je dla każdego nowego połączenia? Czy może jest jakiś > inny sposób na skrócenie czasu pierwszego zapytania?
użyj pgpoola lub pgbouncera.
depesz
-- quicksil1er: "postgres is excellent, but like any DB it requires a highly paid DBA. here's my CV!" :) http://www.depesz.com/ - blog dla ciebie (i moje CV)
Decede mihi sole - nie zasłaniaj mi słonca. Gdy kogoś kochasz, jesteś jak stworzyciel świata - na cokolwiek spojrzysz, nabiera to kształtu, wypełnia się barwą, światłem. Powietrze przytula się do ciebie, choćby był mróz, a ty masz w sobie tyle radości, że musisz ją rozdawać wokoło, bo się w tobie nie mieści Hoc fac - tak czyń. A tergo - od tyłu; z tyłu. I czarne włosy posiwieją. Safona