Výsledky 1 až 10 z 10

Téma: [php+mySQL] full text vyhledavani na strankach

  1. #1

    Standardní [php+mySQL] full text vyhledavani na strankach

    jak se da udelat fulltextovy vyhledavani v databazi MySQL

    hledal sem na netu a nasel sem dve az tri moznosti...
    prvni) mysql full-text - coz asi neni nejstastnejsi varianta...
    druha) SELECT ... WHERE ... LIKE -
    treti) nejaky indexovani... coz se mi ale nezda jako dobra varianta...

    co byste mi doporucili?
    jak byste delali vyhledavani??
    nic....

  2. #2
    Senior Member VIP Avatar uživatele Arteee
    Založen
    16.12.2002
    Bydliště
    Hey Prague
    Příspěvky
    1 767
    Vliv
    293

    Standardní

    proc se ti nezda indexovani jako dobra volba?
    V dobach, kdy webhosting sql serverem byl vzacny, tak taky to bylo na trafic, takze nejaky opakovany SELECTY admini netrpeli > muselo se indexovat.
    BA95 positive
    Jen mrtví poznají konec války. Platón

  3. #3

    Standardní

    Citace Původně odeslal Arteee
    proc se ti nezda indexovani jako dobra volba?
    V dobach, kdy webhosting sql serverem byl vzacny, tak taky to bylo na trafic, takze nejaky opakovany SELECTY admini netrpeli > muselo se indexovat.
    no..pac kdyz sem videl napriklad tabulku v phpBB kde byly ty indexy, tak sem se zdesil...

    jak to teda funguje se kazdy slovo ulozi spolecne s identifikatrem clanku a pak se hleda pomoci WHERE ?
    nic....

  4. #4
    Administrátor mince Avatar uživatele Jezevec
    Založen
    08.10.2002
    Bydliště
    Teplice
    Příspěvky
    6 738
    Vliv
    300

    Standardní

    Hmm a co takhle pouzit nativni fulltext mysql ?
    IMPROBE AMOR, QUID NON MORTALIA PECTORA COGIS - krutá jsi, lásko, kam až ty doženeš smrtelná srdce -- Vergilius
    Mnoho je prostředků, které léčí lásku, ale žádný není spolehlivý.
    S tím, čeho se na nás dopustili druzí se už nějak vyrovnáme. Horší je to s tím, čeho jsme se na sobě dopustili sami.
    -- Francois La Rochefoucauld
    Nabídnout přátelství tomu, kdo chce lásku, je jako dát chleba tomu, kdo umírá žízní.

  5. #5

    Standardní

    ja pouzivam v definici tabulky normalne
    Kód:
    FULLTEXT (heading,content)
    a pak pro hledani
    Kód:
    SELECT MATCH (advert.heading,advert.content) AGAINST ('bagr') AS relevance
    FROM advert
    HAVING relevance > 0
    1) ASUS M6A
    2) Toshiba Portége R600-10U
    3) ASUS A8V-X AMD Athlon 64 3000+ Kingmax 2x256MB DDR 400 WD 120GB Samsung 80 GB GMC G30 Fortron FSP400-60THN-P
    Ideální indentace pro Pascal je šest stop pod zem.

  6. #6

    Standardní

    Citace Původně odeslal ripper
    ja pouzivam v definici tabulky normalne
    Kód:
    FULLTEXT (heading,content)
    a pak pro hledani
    Kód:
    SELECT MATCH (advert.heading,advert.content) AGAINST ('bagr') AS relevance
    FROM advert
    HAVING relevance > 0
    jo..to sem taky chtel pouzit, ale tady: to neuvadeji jako moc dobry reseni...

    asi budu muset pristoupit na indexaci
    nic....

  7. #7

    Standardní

    tak sem si zkusil indexovat tabulku...
    uz mi funguje hledani jednoho slova....

    ale nejak mi nedochazi jak udelat hledani vice slov a pak treba takovy ty logicky spojky jako je OR nebo AND.....

    napadlo me jen hledani tech slov tak aby mely vsehcny stejny id clanku ve kterym sou....

    btw..zkusil sem i fulltext v mysql, ale tady: http://www.linuxsoft.cz/article.php?id_article=952 to nedoporucujou..a nebo spis uvadeji zaporny vlastnosti...
    nic....

  8. #8
    Administrátor mince Avatar uživatele Jezevec
    Založen
    08.10.2002
    Bydliště
    Teplice
    Příspěvky
    6 738
    Vliv
    300

    Standardní

    Kdyz hledas vic slov, tak se to dela tak, ze to roztrhnes a hledas jednotlivy. Pak si udelas nejaky kriteria a vysledek setridis podle toho kterej clanek dostane nejvic bodu.

    Napr 10bodu za vyskyt v nadpisu, 1 bod za kazdy vyskyt v textu, v pripade vyskytu obou slov ve stejnym clanku + 5bodu ...
    IMPROBE AMOR, QUID NON MORTALIA PECTORA COGIS - krutá jsi, lásko, kam až ty doženeš smrtelná srdce -- Vergilius
    Mnoho je prostředků, které léčí lásku, ale žádný není spolehlivý.
    S tím, čeho se na nás dopustili druzí se už nějak vyrovnáme. Horší je to s tím, čeho jsme se na sobě dopustili sami.
    -- Francois La Rochefoucauld
    Nabídnout přátelství tomu, kdo chce lásku, je jako dát chleba tomu, kdo umírá žízní.

  9. #9

    Standardní

    Jen doplnim, ze varianta s LIKE je pri vetsi databazi v zasade nepouzitelna kvuli vykonu.

    Nejlepsi je prvni varianta tedy pouzit MySQL fulltext, ktery na druhou stranu v zasade nedela interne nic jineho, nez ze vytvori specialni index, ktery si ovsem muzes vytvorit i sam rucne coz jsi zminil v bodu 3 a nelibilo se ti to

  10. #10

    Standardní

    LIKE je nesmysl to rozhodne!!! ... to delalo stary phorum a db s cca 1.5M postama to prohledavalo snad 10 minut - pricemz ta tabulka byla lockla a nic nefungovalo ... navic zatizeni cpu permanentne 100% ... implementujes to okamzite ale ZADNEJ index ti tohle neosefuje!!! dycky se bude delat full-table scan (teda pokud nebudes hledat jen podle prvnich pismen toho sloupce) tj. mas select .... WHERE sloupec LIKE '%slovo%' ... ;

    MySQL fulltext je hezkej a jednoduchej ale ... poradne tam neovlivnis hodnotu tech slov ... takze fakt jen simple hledani, implementace je taky hodne easy a ma to nejakej vlastni zpusob vyhodnocovani pravdepodobnosti shody, ale treba rezervovany slova se editujou v konfiguraku mysql takze pokud to mas na webhostingu a potrebujes hledat 3pismeny slova (treba AMD tady na foru) tak si neskrtnes.



    a nakonec ta metoda kterou pouziva phpBB a vubec vetsina takovejhle aplikaci tj. tabulky wordindex a wordmatch je asi nejefektivnejsi, protoze muzes presne ovlivnovat hodnoty slov - tj. napr. slovo v nadpisu ma vetsi vyznam nez slovo v poznamce nebo v diskuzi. je narocnejsi na implementaci (musis nekde stahnout nebo napsat engine na to) ale nejefektivnejsi, mas ho plne pod kontrolou a nebude zabirat moc vic mista nez fulltext klic. bude pri normalnim pouzivani zhruba stejne rychla.
    Hrrrr, will you stop using people as human driven search engines? Google.com has all the answers you need.

Informace o tématu

Users Browsing this Thread

Toto téma si právě prohlíží 1 uživatelů. (0 registrovaných a 1 anonymních)

Pravidla přispívání

  • Nemůžete zakládat nová témata
  • Nemůžete zasílat odpovědi
  • Nemůžete přikládat přílohy
  • Nemůžete upravovat své příspěvky
  •