SEO a linkbuilding - jednorázové služby i garance pozice
Zobrazují se odpovědi 1 až 8 z 8

Nastavení fulltextu

  1. Dobrý den,

    zajímalo by mě jak nastavit fulltext (vyhledávací dotaz), aby našeptávač vyhledávání ukazoval vyhledávání od začátku slov.

    Díky za postřehy
    Naposledy upravil fida8 : 25.11.2011 v 11:44

  2. Happy Robot :]

    Co se právě děje na Webtrhu?

  3. To je jednoduché, mají tam AJAX co po každém zadání písmenka zavolá nový dotaz na DB a ten vypadá odhadem nějak takhle:
    Kód:
    SELECT vyhledavanaslova FROM tabulka WHERE vyhledavanaslova LIKE 'zadanoveformulari%'

  4. Právě jsem se chtěl vyhnout LIKE kvůli rychlosti a proto že vyhledávání je celkem zatěžované. Mohlo by to jít i nějak takhle ve fulltext? (MATCH, AGAINST)

  5. teoreticky by to slo delat pomoci Lucene, ale jeste sem to nezkousel

  6. Pokud u LIKE používáš zápis "vyraz%", hledají se tedy pouze řetězce začínající tím výrazem, použije se u MySQL index. Právě protože je to podle řetězce, takže vyhledávání by mělo mít složitost log(n)*delkaRetezce v nejhorším případě. Problém potom vzniká při přepočítávání indexu, který je náročný. Takže bych doporučil nově hledané výrazy ukládat do pomocné tabulky a přepočítávat třeba jednou denně v noci.

  7. Citace Původně odeslal fida8 Zobrazit příspěvek
    Právě jsem se chtěl vyhnout LIKE kvůli rychlosti a proto že vyhledávání je celkem zatěžované. Mohlo by to jít i nějak takhle ve fulltext? (MATCH, AGAINST)
    Samozřejmě to jde udělat lépe, tohle byl jen takový jednoduchý nástřel, rychlejší bude třeba:

    Kód:
    SELECT vyhledavanaslova FROM tabulka WHERE LEFT(vyhledavanaslova, LEN('zadanoveformulari')) = 'zadanoveformulari'
    Ono záleží, pokud bude LIKE použitý nad řádově tisíci až desítkami tisíci záznamy je to skoro jedno. Od stovek tisíců a milionů záznamů, už LIKE není vhodný a rozdíl rychlosti se začne projevovat. Pak se může začít brát v úvahu i předpočítávání indexu jak psal zaruba, nebo další optimalizační techniky.

  8. Citace Původně odeslal duben Zobrazit příspěvek
    Samozřejmě to jde udělat lépe, tohle byl jen takový jednoduchý nástřel, rychlejší bude třeba:

    Kód:
    SELECT vyhledavanaslova FROM tabulka WHERE LEFT(vyhledavanaslova, LEN('zadanoveformulari')) = 'zadanoveformulari'
    Opravdu bude tohle rychlejší? To mě celkem překvapilo. Čekal bych, že ten like stejně porovnává řetězec jen do délky toho "zadanoveformulari", takže proč to ještě ořezávat?

  9. Nejsem si jistý u MySQL, na MSSQL to bude určite rychlejší. DB engine pro LIKE používá jiný algoritmus než pro = i při porovnávání stringu. Rozdíl do pár desítek tisíc nebude znát, nad pár stovek tisíc už by tam rozdíl je.

Podobná témata

  1. TOP pozice Sklik ve fulltextu
    By lupo in forum Marketing
    Odpovědí: 7
    Poslední příspěvek: 06.01.2008, 20:50
Hostujeme u Server powered by TELE3