Zdravim - PostgreSQL je moje oblibena databaze a vsem ji vrele doporucuji. Chci se jenom zeptat, co je za takovy hrozny problem implementovat full-text search primo do databaze, kdyz uz to umi takove ruzne silene veci... :)
Názory k článku
Co nového v PostgreSQL 7.4
Re: Full-text?
celé vláknoCas, chut, lidi nebo ten kdo je toho schopen to nevidi jako prioritu? Ostatne pokud to jde jako aplikace je to nutne kodovat primo do DB?
Re: Full-text?
celé vláknoTak hrozny problem to neni, a pro pristi verzi se o tom vazne uvazuje. V Contribu tsearch2 zustal pravdepodobne proto, ze se jedna o relativne novinku.
Re: Full-text?
celé vláknoA jak je na tom ten fulltext nyni? Asi pred dvema lety jsem to testoval, čeština v tom moc nechodila a bylo to pomalé...
Už je to lepší? Chodí to někomu na webu abych to mohl vyzkoušet? :)
Jinak PG RULEZ teda spolu s Iterbase to jsou nejlepsi databaze. Podle mě teda. Noflame.
Re: Full-text?
celé vláknoDoplnil bych otázku - stále ještě funguje tsearch na principu, že se při ukládání vygeneruje do zvláštní tabulky seznam slov (co clovo to řádek) a pak se hledá v nich? Pokud ano, nedovolil bych si tomu říkat fulltext...:-(
Nebo - je dostupné ještě jiné řešení než tsearch, které je opravdu fulltextové, srovnatelné třeba s fulltextem v MySQL nebo MSSQL? Rád bych se k něčemu dopídil, ať už pro PG nebo pro Firebirda, ale na nic volně dostupného jsem nenarazil.
Re: Full-text?
celé vláknoAno tsearch tak pracuje. IMHO to je urcene k indexaci nejakych mensich textu ulozenych v DB (treba texty faktura, subjekty mailu apod.). O nicem jinem nevim, protoze jsem nikdy nic takoveho nepotreboval - tedy potreboval, ale nenaladlo mne na to pouzivat relacni DB (pouzil jsem htdig:-).
Re: Full-text?
celé vláknoNojo, já dělám s webem. Čili s texty. Tam je často výhodné ukládat textová data (i delší) do DB, na druhou stranu člověk v tom taky potřebuje hledat.
Re: Full-text?
celé vláknoDotaz - jak by sis predstavoval full-text search jinak? IMHO to vzdy vede k tabulce slov - jen to clovek treba nevidi, ne?
Re: Full-text?
celé vlákno"Doplnil bych otázku - stále ještě funguje tsearch na principu, že se při ukládání vygeneruje do zvláštní tabulky seznam slov (co clovo to řádek) a pak se hledá v nich? Pokud ano, nedovolil bych si tomu říkat fulltext...:-( "
A jak si predstavujete, ze to dela takove MajEsKveEl? Prohledava radky? Tomu bych si pro zmenu nedovolil ja rikat "index." Ta Vami zminena "zvlastni tabulka" je nezbytna, at uz ji vidite nebo ne.
Re: Full-text?
celé vláknoHmm, a jak s touhle implementací chcete například hledat víceslovné výrazy? Nebo vážit, jak moc výsledek dotazu vyhovuje? Podívejte se třeba na http://jakarta.apache.org/lucene/docs/queryparsersyntax.html, jakým způsobem se používají fulltextové výrazy. tsearch je pouhý seznam slov, navíc značně neefektivní, rozhodně ne fulltext. Nevím, jak to má technicky řešené MySQL nebo zmíněný Lucene (vím, to není DB server), ale sotva takhle, soudě podle rychlosti zpracování a několika dalších funkcí.
Mimochodem, bylo by možné upravit stránku s příspěvky tak, aby v Mozille delší thready neujížděly do sloupce vpravo? Abych se dostal na odkaz pro reakci na příspěvek nade mnou, musel jsem oprášit IE :-(
Re: Full-text?
celé vláknoPřidal jsem příspěvek a ejhle, formátování se spravilo. Závada asi byla na mém přijímači.
Re: Full-text?
celé vláknoViceslovne vyrazy se daji hledat celkem snadno - staci kdyz k te tabulce slov bude i tabulka umisteni slov v dokumentu a budes hledat slova, ktera na sebe navazuji (lze to optimalizovat tak, ze najdu prvni slovo, podivam se, jestli mi vyhovuje nasledujici,jinak hledam dalsi vyskyt slova). Ohodnoceni - staci tabulku umisteni slov v dokumentu rozsirit o sloupec "hodnoceni", kde treba normalnim slovum priradim "1", slovum v nadpisu "10" apod.
Re: Full-text?
celé vláknoOno jde i o to, že třeba MySQL je schopné rozpoznat různé tvary slova, MSSQL to zvládá dokonce i česky, když se mu trošku pomůže.
Nicméně ano, vaše řešení je použitelné, uznávám...:-)
Je to skvely, ale...
celé vláknoPouzivam PG uz delsi dobu. Mame na nem napsanou i cast podnikoveho IS, takze kazdou novou vlastnost s potesenim vitam. 7.4 mne trochu prekvapil - binarni data jsou otocena na urovni jednotlivych bytu. Je nutno rucne obracet byte po byte. Rovnez s tvorbou libpq pod widlema jsou problemy ( MS VC++ 4.2 ) - je treba upravovat standardni .h soubory.
Zaverem dotaz - lze nekde sehnat alespon strucny popis funkci v PG? Nemyslim tak strucny jako v pg_proc - alespon s par slovy textu. Dale tusi nekdo, proc se mi v databazi mnozi schemata typu pg_temp_xx? Jsou prazdna, ale bobtnaji.
Re: Je to skvely, ale...
celé vláknoTy funkce:
select p.proname, d.description from pg_description d, pg_proc p where p.oid=d.objoid;
nebo v programku "psql" prikaz \df
Dekuji
celé vláknoLast but not least - pane Zaku dekuji za Vase clanky. Mnohokrat mi prinesly velmi uzitecne postrehy, ktere jsem v origilane bud prehledl nebo nepochopil.
Subtransakce/checkpo inty?
celé vláknoUmi uz PG subtransakce/checkpointy? Tohle tusim do 7.4 slibovali, ale v release notes jsem to nenasel. Ne ze bych v Oraclu tohle prilis casto potreboval, ale strasne mi vadilo, ze kdyz jsem neco psal do prikazoveho radku a skoncilo to s chybou, tak jsem musel odrolovat celou transakci. V Oracle normalne delam to ze treba dam insert, a pokud spadne na UNIQUE klici, tak je jasne ze tam ta vec uz je a muzu normalne pokracovat dal. V PG musim delat rollback.
A jeste jedna vec ktera nevim jestli v PG je - neco jako Oraclovske packages - neco co umi uchovavat per-session data, a taky co udela oddeleny namespace pro funkce a procedury.
-Y.
Re: Subtransakce/checkpo inty?
celé vláknoBalicky v pl/pgsql by se mi take hodily, bohuzel zatim nejsou :(
na WIN, v. MySQL
celé vláknoPostgreSQL nie je tak zly ale ma zasadne nevyhody oproti MySQL a preto nie je tak rozsireny ako MySQL:
* tazsia instalacia (ziadne spustanie programov dbinit, ipc-daemon a podobne)
* velmi komplikovana instalacia na windowse - takmer nikde nie je mozne najst zrozumitelny navod ako to nainstalovat. Musite si stiahnut cygwin, potom ipc-daemon (ten je zabaleny v .bz2 takze staihnut specialny unzip), postgres a potom to mozno pojde. MySQL ma pre windows instalacny program, ktory pracuje bez problemov.
* jednoduchost a jednoznacnost. PostgreSQL ma vela prikazov a moznosti, ktore dokazu pekne zmiast. Navyse nezachovava uplnu kompatibilitu. Na starej verzii Postgresu som pouzival syntax SELECT ... LIMIT m,n a novej verzii som musel prepisat vsetky select na SELECT ... LIMIT m OFFSET n
Re: na WIN, v. MySQL
celé vláknoPokial viem, tak sa pracuje na nativnom porte na Windows. A PostgreSQL je oproti MySQL viac profesionalna, a preto pre vyvojarov asi nie je az taka dolezita podpora pre Windows (kedze ten na vela serveroch nenajdete).
Co sa tyka podpory, tak PostgreSQL je v podpore SQL spicka plne porovnatelna s komercnymi programami, MySQL sa nechyta ani zdaleka.
Re: na WIN, v. MySQL
celé vláknoad 1) toto je vazne nesmysl, ktery nema smysl komentovat...
ad 2) na win bych PG nikdy neprovozoval (ani pro testovaci ucely) - skoro bych navrhoval, at se zadny port PG pro win nedela
ad 3) nesmysl, PgSQL je naopak velmi citely a co se tyce kompatibility - vyzkousejte i jine produkty a pak sudte :-)

