PHP.EE FOORUM   
Nimi:   Pass:   Mäleta mind! 
   Teemad | php.ee esilehele | registreeri | Märgi kõik teemad loetuks | #php.ee Skype vestlus | RSS
UUS TEEMA  OTSI  Lehekülgi: 1
Inimlik MySQL otsing
Postitaja: atw 2007-11-23 17:01:49
Tervist!

Kas keegi on kunagi jõudnud ka inimliku MySQL abil realiseeritud otsingu juurde?

Fulltext search kipub oleme üks paras jura, näiteks kui otsitakse "puravik", ei leia ta ülesse sõna "puravikud".

Like % otsing kipub aga serverit koormuse kasvul umbe tõmbama (või ei oska ma korralikult päringuid teha? Sel juhul palun õpetage :-)).

Kolmas võimalus on luua eraldi otsingutabel, kus iga sõna on eraldi kirje ja referents dokumendile kaasa, aga see võtab jälle tohutult kõvaketast.

On kellelgi kogemusi korraliku ja töötava otsingu loomisel, milliseid variante olete loonud?
RE: Inimlik MySQL otsing
Postitaja: jojojojojojo 2007-11-23 17:25:59
tahaks sama teada..

sammuti olen näinud, et otsinguid tehakse julmade regexide abil[MySQlis on kah regexp kes ei teadnud ning töötba like php]

sammuti on võimalik mysqlisse pookida levenshteini hax külge, see siis matchib näiteks carrxot asemel carrot jnejne..
RE: Inimlik MySQL otsing
Postitaja: rtfm 2007-11-23 17:41:30
TSITEERITUD:

Kas keegi on kunagi jõudnud ka inimliku MySQL abil realiseeritud otsingu juurde?


googlit olen näinud. puravik* in boolean mode, peaks sulle ju sobiva tulemuse andma, iseasi , kui inimlik see on või , kui inimlik on inimestelt wildcardide teadmist nõuda või eeldada.

Ise võid muidugi teha samasuguse kirjavigade ja sarnaste sõnade pakkuja, avastaja nagu googlis , selle kohta terve raamat ja funktsioon ise netis ka piisavalt kirjeldatud
RE: Inimlik MySQL otsing
Postitaja: hmz 2007-11-23 22:49:51
MATCH AGAINST (boolean mode) + LIKE '%otsing%' + otsingutulemuste cachemine kas mysql või HTML tasemel töötab suht talutavalt

Aga häda selle eesti keele ja tema sõnade käände-, pöörde- jmt lõppudega muidugi on, ingl keeles on lihtsam otsida

Kui on tegemist avaliku veebi ja infoga, sööda see google-le ja suuna oma domeenile filtreeritud otsing sinna
RE: Inimlik MySQL otsing
Postitaja: stepz 2007-11-24 02:05:10
Sellise asja tegemiseks on kõige parem kasutada sõnade lemmatiseerimist, ehk algvormi leidmist. Ispellil või aspellil oli eesti keele jaoks vastav funktsionaalsus olemas, mida Postgres oskas ka oma fulltext otsingus kasutada. Mysqli puhul tuleb sellise asja realiseerimiseks kõvasti käsitööd teha ja päris inverteeritud indeksitega võrdväärset jõudlust ei saa. Alternatiivina võib veel Lucene poole vaadata, mis on täpselt selle ülesande jaoks optimeeritud.
RE: Inimlik MySQL otsing
Postitaja: stepz 2007-11-24 02:06:48
Postscriptumina veel niipalju, et kui seda asja väga tõsiselt tahab teha, siis filosoftil on selle tarbeks vajalikke teekke olemas.

Leheküljed: 1

©2002-2013 Martin Rebane & PHP.ee kaasautorid
  0.0792660713196