Autor | Zpráva | ||
---|---|---|---|
anonymní Profil * |
#1 · Zasláno: 10. 12. 2009, 17:40:25
Jak udělat, aby fulltextové vyhledávání hledalo i bez diakritiky? Pokud zadám slovo trener, tak mi to najde článek kde se vyskytuje slovo trenér, ale když zadám např. Kluz, tak už slovo Kluž nenajde (ve zkratce - čárky fungují ale háčky ne). Děkuji
$sql = "SELECT * FROM clanky WHERE MATCH(nadpis, clanek) AGAINST ('$search' IN BOOLEAN MODE) ORDER BY 5 * MATCH(nadpis) AGAINST ('$search') + MATCH(clanek) AGAINST ('$search') DESC"; |
||
Kajman_ Profil * |
#2 · Zasláno: 10. 12. 2009, 17:49:43
Jaké máte porovnání, general? Možná si budete muset ukládat data i do sloupečku s odstraněnou diakritikou.
|
||
fuckin Profil |
#3 · Zasláno: 10. 12. 2009, 17:52:36
Ano, na weblogu php.vrana.cz je to krasne popsane.
Staci pouze zmenit kodovani. Jestli mas kodovani nastavene na utf8 czech pak to hleda s diakritikou. Proto musis nastavit utf8 general a bude vyhledavat oboje. Samozrejme podpora ceskych znaku zustane. |
||
ajajaj Profil |
#4 · Zasláno: 10. 12. 2009, 18:05:15
také jsem to nedávno řešil, doporučuji utf8_general_ci - nerozlišuje malá a velká písmena
|
||
ajajaj Profil |
#5 · Zasláno: 10. 12. 2009, 18:09:14
jo a ještě si dej do podmínky pokud je řetězec kratší než ft_min_word_len (nejčastěji 3-4) tak to prožeň přes obyč dotaz like "%$řetězec%"
|
||
TomášK Profil |
#6 · Zasláno: 10. 12. 2009, 20:21:45
Ten like imho musí projet sekvenčně komplet celou tabulku, z výkonnostního hlediska to bude dost příšerné. Raději bych nastavil kratší ft_min_word_len, pokud je to možné nebo kratší slova ignoroval.
|
||
Martin87 Profil * |
#7 · Zasláno: 10. 12. 2009, 20:56:31
Porovnání mám nastavené na utf8_czech_ci - to také nerozlišuje malá a velká písmena, ale jak jsem psal nefungují háčky (čárky ano).
fuckin: Jestli mas kodovani nastavene na utf8 czech pak to hleda s diakritikou. Proto musis nastavit utf8 general a bude vyhledavat oboje. Myslíš přenastavit porovnání v DB na utf8 general? |
||
Časová prodleva: 14 let
|
0