Vlákno názorů k článku PHP pro experty: Inteligentní vyhledávání od mirek - ... ja mel za to, ze FULLTEXT index...

  • Článek je starý, nové názory již nelze přidávat.
  • 10. 1. 2005 7:17

    mirek (neregistrovaný)

    ... ja mel za to, ze FULLTEXT index v mysql pracuje prave takto. Muzete nekdo objasnit, jak to teda v ramci MySQL funguje?

  • 13. 1. 2005 21:07

    SoCo (neregistrovaný)

    fulltext v mysql funguje vypoctom vektorov podobnosti... treba si to predstavit tak, ze je v databaze 1000 unikatnych slov a tak je vytvorenych 1000 "dimenzii" a kazdemu slovu priradena jedna. Kazdy zaznam ma nejaky vektor vypocitany z klucovych slov. Pri hladani sa z hladanych slov vypocita vektor a porovna sa rozdiel uhlu od vektoru klucoveho slova a vsetkych vektorov v indexe. Vypocita sa cosinus a to da cislo od 0 po 1, kde 0 je ziadny match a 1 je uplny match. Ked sa k tomu doda nejaky treshold napr. 0.7 a vysledok sa zoradi, tak to ma vystup ako mysql fulltext.

    Problem mysql je, ze nevie ohybat slova - funguje dobre pri anglictine (este lepsie ak sa slova dostanu do neurcitych stavov, resp. korenov). Pri jazykoch ako slovencina, kde neexistuje moznost jednoduchou funkciou zistit koren slova - je problem, resp. ovela mensia ucinnost ("prirucky o linuxe" vs. "prirucka linux" == 0% match). Ak sa chce korektne vyhladavat, je treba zohnat si lematizator :)