Autor | Zpráva | ||
---|---|---|---|
Monkeys Profil * |
#1 · Zasláno: 24. 3. 2015, 17:23:51 · Upravil/a: Monkeys
Potrebujem poradit s vyhladavanim
mam nastavene FULLTEXTY nad 3 stlpcami v tabulke vyhladavam pomocou prikazov MATCH a AGAINST moj dotaz: SELECT id_produktu, uni_kod, produkt, url_produktu, popis, MATCH(produkt, popis, uni_kod) AGAINST('{$search}') AS mtch FROM produkty WHERE priznaky='open' HAVING mtch > 0.001 ORDER BY datum DESC prikaz funguje v poriadku no problem je ze AGAINST ignoruje slova ktore maju 3 alebo menej znakov, co je v tomto pripade dolezite pretoze stlpec uni_kod obsahuje prave kody ktore maju 2,3 a viac pismen. Da sa to nekym sposobom riesit ? dakujem M. Tak som to vyriesil takto: "SELECT id_produktu, uni_kod, produkt, url_produktu, popis ".(( strlen($search) > 3) ? " , MATCH(produkt, popis, uni_kod) AGAINST('{$search}') AS mtch" : "")." FROM produkty WHERE priznaky='open' ".(( strlen($search) > 3) ? "HAVING mtch > 0.001" : "AND produkt LIKE '%{$search}%' OR popis LIKE '%{$search}%' OR uni_kod LIKE '%{$search}%'" )." ORDER BY datum DESC " Ak existuje lepsie riesenie napiste vdaka M. |
||
Keeehi Profil |
#2 · Zasláno: 24. 3. 2015, 19:22:55
Monkeys:
Ano, defaltně slova kratší než 4 znaky se neberou v potaz při vytváření indexu. Dá se to však přenastavit. dev.mysql.com/doc/refman/5.0/en/fulltext-fine-tuning.html |
||
Časová prodleva: 8 let
|
0