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.
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...
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.