Internet Info, s.r.o. Lupa Měšec Podnikatel Root Zdroják DigiZone Slunečnice Vitalia TopDrive KupDnes Navrcholu NovýTarif Dobrý web Weblogy Woko Jagg Computer.cz SK: MojeLinky

Hlavní navigace

Názory k článku
Princip jednoduchého fulltextu s příklady v SQL a PHP (2)

Jakub Hegenbart aura:85
8. 2. 2005 2:05 Nový

Domaci ukol? :)

celé vlákno
Jejda...kdyby to tak fungovalo i nad takovymi 50-100 GB dat, to bych to mohl pouzit taky :)

Ad levostranne doplneni: Muzu pouzit SQL wildcards: "LIKE '%lina'". Problem je s indexy, ze...pokud bych potreboval urychlit hledani indexem s zolikem na zacatku, musel bych si ukladat i rotovane slovo. Nicmene pokud rezie zpracovani tabulky slov je dostatecne mala oproti zpracovani tabulky vyskytu, nebude to tak kriticke. (Jeste ze muzeme pracovat ve vazebni tabulce slova<->clanky jen s IDcky :) Jinymi slovy: pri prohledavani narocnem kvuli velkym textum a mnoha clankum spise nez kvuli velkemu poctu dotazu vadi mene nez v opacnem pripade.

Potencialni stop slova? Tipoval bych ta, ktera se vyskytuji v temer kazdem clanku...alias mala selektivita. Proste spocitam procentuelne, kolikrat se slovo "nebo" vyskytuje v clancich a kdyz zjistim, ze v 95%, klidne si ho muzu dovolit vynechat, protoze u funkce relevance zalozene na kvalitativnim hodnoceni (primarni razeni podle poctu ruznych obsazenych slov dotazu) mi moc nepomuze... U jine relevance by mohl byt samozrejme potrebny jiny postup.

Je mozne, ze mi to uz ale poradne nemysli...mel bych jit spat. Vetsi cast domaciho ukolu ted rozhodne dusevne nezvladnu...

Zdravim...
(Kaaczu taky :)
Michal Illich aura:99
10. 2. 2005 18:23 Nový

Re: Domaci ukol? :)

celé vlákno
Pokud máte 50-100GB a potřebujete je prohledávat, tak se můžete ozvat nám. Určitě něco vymyslíme :)
»Jyxo
Jakub Hegenbart aura:85
12. 2. 2005 3:50 Nový

Re: Domaci ukol? :)

celé vlákno
Fakt? Ve Smalltalku a na mem desktopu doma? Nad OODBMS? (protoze v tom bude zbytek SW...)

Kdepak, tohle si radsi udelam sam...ostatne je to i pekne cviceni z lingvistiky, ktera je mym druhym zivotem...

Rikejme tomu hobby :)
uživatel si přál zůstat v anonymitě
8. 2. 2005 7:52 Nový

levostranne hledani

celé vlákno
co takhle prehodit pismena (reverse) a hledat uplne stejne ?, tj, pouzit stejny kod jako dosud ?
uživatel si přál zůstat v anonymitě
8. 2. 2005 21:31 Nový

Re: levostranne hledani

celé vlákno
Bohuzel tento pristup zkolabuje pokud budete chtit pouzit pravo-leve rozsireni (tj. *term*). Jak psal pan Hegenbart jedna z moznosti je ulozit do B-stromu vsechny rotace. Dalsi moznosti jsou tzv. Suffixove stromy. Zde je ovsem pomerne neefektivni perzistence. Z nasich luhu a haju jmenujme pristup:

M. Krátký, T. Skopal, and V. Snášel: Multidimensional Term Indexing for Efficient Processing of Complex Queries. Kybernetika, Journal of the Academy of Sciences of the Czech Republic, (3):381-396, 2004.

Ten pouziva neuplne zname datove struktury, nicmene tento problem relativne efektivne resi.

Vubec mi v clanku chybi reference. V oblasti Information Retrieval bylo napsano velke mnozstvi knih a clanku. Je skoda, ze se autor snazi objevit jiz existujici svetadil a nehleda inspiraci v existujicich pracech.
uživatel si přál zůstat v anonymitě
8. 2. 2005 7:56 Nový

OT: chaby v horni liste roota

celé vlákno
sory za OT, ale od zmeny v designu roota chybi v horni liste se seznamem serveru odkaz na palmserver.cz. Na ostatnich serverech iinfa je to OK. Redakce ani jednoho ze zminovanych serveru na muj mail nereaguji, tak jim to zkuste pripomenout i vy ostatni, treba se probudi.
At zije abclinuxu.cz :)))
Dalibor Šrámek
Dalibor Šrámek (neregistrovaný)
8. 2. 2005 8:11 Nový

Errata - indexy cizích klíčů

celé vlákno
V tabulce FT_Index jsem opominul vytvoření indexů nad cizími klíči:
CREATE INDEX FT_Index_IdWord_FK ON FT_Index (IdWord);
CREATE INDEX FT_Index_IdArticle_FK ON FT_Index (IdArticle);

(Příklady budou fungovat i bez nich, ale po naplnění větším objemem dat by se hledání velice zpomalilo.)
uživatel si přál zůstat v anonymitě
8. 2. 2005 21:37 Nový

Re: levostranne hledani

celé vlákno
Bohuzel tento pristup zkolabuje pokud budete chtit pouzit pravo-leve rozsireni (tj. *term*). Jak psal pan Hegenbart jedna z moznosti je ulozit do B-stromu vsechny rotace. Dalsi moznosti jsou tzv. Suffixove stromy. Zde je ovsem pomerne neefektivni perzistence. Z nasich luhu a haju jmenujme pristup:

M. Krátký, T. Skopal, and V. Snášel: Multidimensional Term Indexing for Efficient Processing of Complex Queries. Kybernetika, Journal of the Academy of Sciences of the Czech Republic, (3):381-396, 2004.

Ten pouziva neuplne zname datove struktury, nicmene tento problem relativne efektivne resi.

Vubec mi v clanku chybi reference. V oblasti Information Retrieval bylo napsano velke mnozstvi knih a clanku. Je skoda, ze se autor snazi objevit jiz existujici svetadil a nehleda inspiraci v existujicich pracech.
uživatel si přál zůstat v anonymitě
8. 2. 2005 21:39 Nový

Re: levostranne hledani

celé vlákno
Omlouvam se vlozeni ji zaslane zpravy.
Jakub Hegenbart aura:85
8. 2. 2005 23:45 Nový

Re: levostranne hledani

celé vlákno
Neměl byste ještě nějaké další reference? Tohle mne docela zajímá :)
uživatel si přál zůstat v anonymitě
9. 2. 2005 5:33 Nový

Re: levostranne hledani

celé vlákno
Poslete mi mail na michal.kratky@vsb.cz.
uživatel si přál zůstat v anonymitě
9. 2. 2005 5:35 Nový

Re: levostranne hledani

celé vlákno
Muj mail jiste vsechny spamery potesi, mohla by jej prosim redakce upravit. Diky.
Martin Koníček
Martin Koníček (neregistrovaný)
12. 2. 2005 12:09 Nový

dobry clanek

celé vlákno
Opravdu pěkný článek, jsem docela rád že se někdo chytil na můj komentář, že kritizovat umí každý, ale tvořit málokdo a našel se i člověk, jež krom kritiky navrhl i jak to vylepšit.

Problém ovšem je, že udělat opravdu rozumné vyhledávání je otázkou opravdu na knihu. Tyto dva články rozebírají takřka jen teorii, ale implementace by byla opravdovým oříškem.

Podle mě by bylo fajn, kdyby se tu někde objevila funkční knižnice tokenizátoru, která by si rozumně poradila i s češtinou. Mě by na to stačil alespoň seznam českých koncovek, kdyby ho někdo měl byl bych mu opravdu vděčný, už mám i seznam synonym a podobných věcí.

To na co ale narážím nejvíce je omezený počet zdrojů na vytvoření vyhledávání. Ono totiž není dost dobře možné naprogramovat dobré vyhledávání za rozumný čas. Podle mě je škoda, že se na to nemyslí už v databázích, protože tam kdyby existoval rozumný fulltext by to bylo nejrychlejší a nejlepší. Jistou možností nad kterou v poslední době uvažuji je napsání nějakého tokenizátoru přímo do databáze a zbytek řešit přes triggery a SQL kód. Nevýhodou je, že MySQL je dost slabá na takové použití a pochybuji, že někdo bude menší projekty programovat pro něco jiného.
uživatel si přál zůstat v anonymitě
13. 2. 2005 13:49 Nový

Re: dobry clanek

celé vlákno
No, myslím, že jsem nedávno v Karolinu viděl (v jazykovědných knihách) knihu, která dopodrobna rozebírala, jak parser češtiny napsat :) Jakási anglicky psaná monografie...
Dalibor Šrámek
Dalibor Šrámek (neregistrovaný)
14. 2. 2005 8:33 Nový

Re: dobry clanek

celé vlákno
Fulltext s převáděním českých slov na základní tvar podle slovníku a podporou synonym poskytuje například modul tsearch2 do PostgreSQL - viz tady na Rootu http://www.root.cz/clanky/fulltextovani-v-postgresql-modul-tsearch2/
S tou implementací bych to tak složitě neviděl. Když jsem kód ukázkový kód pro článek testoval, vytvořil jsem indexátor dopsáním méně než 10 řádků v PHP. Konstrukce dotazů pro nejjednodušší případy všechna slova v dotazu OR nebo všechna AND nejspíš nezabere o moc větší počet.
Zasílat nově přidané příspěvky e-mailem