Diskuse:TSearch2

Z PostgreSQL
Skočit na navigaci Skočit na vyhledávání

Hellou

skusal som nainstalovat TSEARCH2. Nebolo to uplne bezbolestne ale darilo sa mi to pokial som nemal nadefinovat novy slovnik. Skusal som ako slovensky tak cesky slovnik ale po spusteni :

SELECT lexize('ispell_slovak','jablko'); je result {jablko} SELECT lexize('ispell_slovak', 'jablká'); je result prazdny SELECT lexize('ispell_slovak','jablke'); je result ERROR : Regex error in '[^áeoô]l$': brackets [] not balanced alebo : SELECT to_tsvector('default_slovak','Zobrali sme dve jablka jedno červené a jedno modré'); result : ERROR: Regex error in '[^áď»ňµ]$': brackets [] not balanced

neviete v com moze byt problem postupoval som podla tohto clanku ale aj inych zdrojov na internete

lexize pre simple funguje vzdy ... ale zial neodstranuje diakritiku ...

stretli ste sa niekto s tymto problemom ?

Rekl bych, ze mate problem s kodovanim. Ale to je tak vsechno, co mohu odhadnout. Mam pocit, ze starsi verze 8.1 nepodporovaly UTFko. Radeji se podivejte do release notes
Diki Mate pravdu. Nasiel som ze az 8.2 podporuje UTF formatovanie. Este ma zaujima jedna vec a to ze slovo, ktore v slovniku nenajde automaticky vypusti. Da sa nejak nastavit to aby slovo ktore nenasiel v slovniku a nie je v .stop subore tam ponechalo v takom tvare v akom ho naslo ?
Když token není v daném slovníku nalezen, je výsledkem analýzy prázdný řetězec. Tato vlastnost by mohla diskvalifikovat tsearch2 v praxi - např. některá příjmení nebo názvy v žádném slovníku nenajdeme. Díky genialitě tvůrců máme ale k dispozici tzv. simple slovník, který pouze převádí velká písmena na malá, a můžeme řadit za sebe více slovníků (slovník simple zařadíme na konec).

Zdravim

Asi mesiac pouzivam TSearch2 modul na postgres 8.2 vsetko super funguje ale chcel by som doplnit vyhladavanie s ignoraciou dlznou a makcenou to jest :

želva = zelva lámať = lamat = lámat = lamať

aky je idealny postup ? resp. nema postgres takuto podporu nejak implementovanu. Jedina vec co ma napadla je nahradit v slovniku vsetky interpunkcne pismena za klasicke á,ä -> a; č, -> c; atd... a potom do vyhladavacej metody uz tiez dodat slovo ochudobnene ... mate s tym niekto skusenosti ?

Diki

Nic takového podporováno není, a není mi známo, že by v budoucnu podporováno mělo. Problém je v tom, že jakmile zlikvidujete diakritiku, tak Vám přestane chodit lexamizace. Ledaže byste měl slovníky pro ispell bez diakritiky. V podstatě je to totéž jako podpora nového jazyka.
Ok takze zatial je jedine riesenie zlikvidovat diakritiku v ispell slovniku a potom aj vsetky dotazy dodavat bez diarkitiky ...
alebo urobit kopiu ispellu a tento okresany slovnik pouzivat ako novy jazyk na specialne query a povodny slovnik na vsetko ostatne ?
totizto tvorim stranku http://www.e-doktor.sk a tento specialny search by som potreboval iba na meno lekara. Na ostatne query je diarkitika vhodna.
Teoreticky by se dal použít slovník synonym, který je v 8.2, ale ani jsem to neviděl.
Dik nieco vymyslim ;)
Co ukladat jmena doktoru do databaze take bez diakritiky?

Affix parse error

Dobry den,

pokousim se rozchodit TSearch2 na WinXP ale pri SELECT set_curdict('ispell_czech'); dostavam chybu Affix parse error at 20 line. SQL state: XX000 Na 20. radce aff souboru je " . > TřIA" a je to prvni misto kde se vyskytuje 'ř'.

Skusil jsem na prvni radku aff souboru dat SET UTF8, skusil jsem SET client_encoding TO 'UTF8'; SELECT set_curcfg('utf8_czech'); ale nic nepomaha. Cim to muze byt a jak to odstranit?

Trochu hadam, nicmene u tsearch je zakladem, aby slovniky byly ve stejnem kodovani jako databaze. Slovniky, ktere tady koluji jsou v latin2, takze je potreba je rucne prevest na UTF8.
Bohuzial toto nieje celkom pravda. PostgreSQL 8.2 ma problem s UTF-8 slovnikmi. Urcite by som neratal s tym ze staci skonvertovat slovak.aff na UTF-8 a pojde vam. Verzia 8.3 ma zas este silnejsi validator na aff subory, takze subor treba dost vydatne upravovat. Pripravujem release slovnikov UTF-8 pre slovensky jazyk. Ked budu otestovane budu stiahnutelne zo stranky Tsearch2.
Nevzpomínám si, že bych prováděl cokoliv jiného vyjma konverze kódování - aff souborům nijak zvlášť nerozumím a fulltext pro češtinu jsem rozjel - zrada tam je, slovníky musí být vždy v UTF8 i když kódování je latin2 (to jsem tuším reportoval jako chybu, a bylo mi řečeno, že to chyba není). V každém případě mne zajímá výsledek - pokud někam umístíte slovník, přidejte sem, prosím, link. Díky Pavel