Autor Zpráva
Cakewalk
Profil
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
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
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
Díky za radu, ale to právě nemám. Hosting BANAN, min. čtyři znaky a nejde přenastavit.
Cakewalk
Profil
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á".

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0