Zadejte hledaný výraz...

Nastavení fulltextu

David Flídr
verified
rating uzivatele
(22 hodnocení)
24. 11. 2011 23:39:08
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
24. 11. 2011 23:39:08
https://webtrh.cz/diskuse/nastaveni-fulltextu/#reply701098
duben
verified
rating uzivatele
(49 hodnocení)
25. 11. 2011 10:27:48
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:
25. 11. 2011 10:27:48
https://webtrh.cz/diskuse/nastaveni-fulltextu/#reply701097
David Flídr
verified
rating uzivatele
(22 hodnocení)
25. 11. 2011 10:38:48
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)
25. 11. 2011 10:38:48
https://webtrh.cz/diskuse/nastaveni-fulltextu/#reply701096
Lokiji
verified
rating uzivatele
25. 11. 2011 10:48:16
teoreticky by to slo delat pomoci Lucene, ale jeste sem to nezkousel
25. 11. 2011 10:48:16
https://webtrh.cz/diskuse/nastaveni-fulltextu/#reply701095
zaruba
verified
rating uzivatele
25. 11. 2011 11:13:34
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.
25. 11. 2011 11:13:34
https://webtrh.cz/diskuse/nastaveni-fulltextu/#reply701094
duben
verified
rating uzivatele
(49 hodnocení)
25. 11. 2011 11:34:28
Napsal fida8;726895
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:
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.
25. 11. 2011 11:34:28
https://webtrh.cz/diskuse/nastaveni-fulltextu/#reply701093
zaruba
verified
rating uzivatele
25. 11. 2011 11:51:24
Napsal duben;726915
Samozřejmě to jde udělat lépe, tohle byl jen takový jednoduchý nástřel, rychlejší bude třeba:
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?
25. 11. 2011 11:51:24
https://webtrh.cz/diskuse/nastaveni-fulltextu/#reply701092
duben
verified
rating uzivatele
(49 hodnocení)
25. 11. 2011 13:48:35
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.
25. 11. 2011 13:48:35
https://webtrh.cz/diskuse/nastaveni-fulltextu/#reply701091
Pro odpověď se přihlašte.
Přihlásit