Autor Zpráva
souki
Profil
Mám u každého článku v DB jedno pole s klíčovými slovy (oddělené čárkou). Potřeboval bych nyní nějak chytře prohledat všechny články a najít k danému relevantní. Uvažoval jsem na několika možnostmi.
a) Prohnat klíčová slova přes ASpell a uvést je do základního tvaru. Uložit do jiné tabulky ve formátu id|slovo|id_clanek Pak ybch ale musel nějakým chytrým dotazem vybrat články, které mají největší shodu. Tady mé znalosti končí.
b) Neporovnávat klíčová slova vzájemně, ale použít je pro fulltextové hledání. Výsledek si potom uložit do nějaké tabulky, v rámci úspor zátěže. Opět alenevím jak elegantně řadit podle nejlepší shody
c) Brutální silou přes CRON 2x denně prolézt celou databázi a natvrdo vyzkoušet "všechny" možnosti. Následně uložit nejlepší do tabulky

d) Při psaní mě napadlo ještě čtvrté řešení - do jedné tabulky si ukládat pouze klíčová slova a ID. V další mí přiřazené id_slovo&id_clanek . Pak by asi šli vybrat nějak rozumně s řazením podle count()

Asi nejlepší se mi zdá možnost b), protože nespoléhá na správně vyplněnná slova a hledá skutečně relevantní články. Nicméně mé znalosti nestačí pro vytvoření dotazu, který by řadil podle relevance

Pomůžete mi prosím? I nakopnutí potěší
Kajman_
Profil *
Výsledky fulltextu přímo z mysql jsou špatné?
http://dev.mysql.com/doc/refman/4.1/en/fulltext-search.html
souki
Profil
Kajman_
Pokud jsem je dobře pochopil (a zkoušel), tak když mu mrsknu frázi obsahující 10 slov a v nejlepším článku jich bude 5, tak mi ho nezobrazí, ne?
Kajman_
Profil *
Tuším, že zobrazí, pokud tam nebude natvrdo prefix + u každého slova.
Mastodont
Profil
http://en.wikipedia.org/wiki/Latent_semantic_indexing

:-)

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: