Autor | Zpráva | ||
---|---|---|---|
Cakewalk Profil |
#1 · Zasláno: 21. 11. 2011, 10:41:34
Dobrý den,
vím, že už se to tady probíralo mnohokrát a na webu jsou tisíce návodů na vytvoření vyhledávání, ale přesto bych poprosil o váš názor. Používáme toto pro vyhledávání: (je to pouze výtažek kódu, který se týká klíčových slov. Zbytek je nepodstatný.) if (!empty($src_details['keywords_search'])) { $keywords_search = $db->rem_special_chars($src_details['keywords_search']); if ($src_details['search_description'] == 1) { $query[] = "((a.name REGEXP '( )*(" . str_replace(' ', ')*( )*(', $keywords_search) . ")( )*') OR (a.description REGEXP '( )*(" . str_replace(' ', ')*( )*(', $keywords_search) . ")( )*'))"; } else { $query[] = "(a.name REGEXP '( )*(" . str_replace(' ', ')*( )*(', $keywords_search) . ")( )*')"; } } Řešíme problém vyhledávání, kde se nedělá rozdíl mezi velikostí písmen (velké, malé) a diakritikou. Nyní vyhledávání funguje bez problémů i na krátká slova. Před čase jste mi radili nasadit fulltextové vyhledávání. Podle článků na webu, ale toto potřebuje min. čtyři zadané znaky. Dá se tedy naše vyhledávání nějak upravit, aby nedělalo rozdíly ve velikosti písmen a diakritikou se zachováním neomezených znaků? |
||
Tori Profil |
#2 · Zasláno: 21. 11. 2011, 11:38:21
Jestli máte možnost upravovat nastavení serveru (přes příkazovou řádku, je nutné pak restartovat mysql server a přegenerovat fulltext.indexy), koukněte do manuálu na nastavení ft_min_word_len.
|
||
Cakewalk Profil |
#3 · Zasláno: 21. 11. 2011, 11:44:33
Našel jsem např. také toto, ale nějak mi to nechce fungovat. Všichni si to ale pochvalují.
http://www.martinvseticka.eu/index.php?sekce=browse&page=130 |
||
Cakewalk Profil |
#4 · Zasláno: 21. 11. 2011, 11:45:58
Díky za radu, ale to právě nemám. Hosting BANAN, min. čtyři znaky a nejde přenastavit.
|
||
Cakewalk Profil |
#5 · Zasláno: 21. 11. 2011, 12:29:01
Ještě poznámka. Při vyhledávání to nedělá rozdíl mezi velikostí písmen pouze u písmen bez diakritiky. Např. "Zcela nová" - najde i podle "zcela nová". "Úplně nová" - nenajde podle "úplně nová".
|
||
Časová prodleva: 12 let
|
0