V tomto článku se zaměřím na možnosti fulltextového vyhledávání na vlastních stránkách.
Pokud máte stránky s databází, je asi nejlepší naprogramovat si vyhledávání vlastní. Velmi pěkně o tom pojednává třeba článek PHP MySQL: Vyhledávání nebo Fulltextové vyhledávání v MySQL.
Jen doplním, že pokud budete atribut fulltext do databáze přidávat pomocí phpMyAdmina, musí se klíč přidat pro každý požadovaný sloupec zvlášť (pokud třeba máte sloupce text, úvod, titulek a chcete je každý zvlášť indexovat, když v phpMyAdminu zaškrtnete všechny tři a dáte přidat fulltext, udělá se z nich jeden klíč a pokud použijete postup podobný článku výše, patrně se záhy setkáte s chybovým hlášením "Can't find FULLTEXT index matching the column list").
Nevýhodou je, že je to trochu více práce a třídění opravdu relevantní dá docela zabrat. Nadruhou stranu se Vám nestane, že nenajdete článek, který jste právě vydali.
Já si třeba udělal takového vyhledávání:
$query = " SELECT title,intro,content,tags, ( 3*MATCH(title) AGAINST('".$search."' IN BOOLEAN MODE) + MATCH(intro) AGAINST('".$search."' IN BOOLEAN MODE) + MATCH(content) AGAINST('".$search."' IN BOOLEAN MODE) + 2*MATCH(tags) AGAINST('".$search."' IN BOOLEAN MODE) ) AS relevance FROM articles WHERE MATCH(title) AGAINST('".$search."' IN BOOLEAN MODE) OR MATCH(intro) AGAINST('".$search."' IN BOOLEAN MODE) OR MATCH(content) AGAINST('".$search."' IN BOOLEAN MODE) OR MATCH(tags) AGAINST('".$search."' IN BOOLEAN MODE) ORDER BY relevance DESC LIMIT 10 ";kde předpokládám hledaný výraz v proměnné $search.
BOOLEAN MODE umožňuje pokročilejší vyhledávání pomocí speciálních znaků, viz manuál.
Všimněte si sloupce, který si pojmenovávám relevance - ten bude obsahovat váženou relevanci výsledků (titulek bude mít největší váhu, 3, potom tagy, text a úvod bude mít váhu jedničkovou). Není to samozřejmě normované, je to jen příklad, jak jsem si to pro sebe udělal já.
Okrajem jen zmíním, že výše uvedený kód je smyšlený:-)
Asi nejjednodušší je vložit na své stránky vyhledávání pomocí Googlu. Je tto vcelku rychlé, ale pokud si Vaše stránky na indexech Googlu nestojí moc dobře, může se Vám stát, že výsledky budou dost nepřesné a nové články se v nich projeví až za dlouho.
Vytvoření vlastního vyhledávání Google.
V našich končinách jsou někdy stránky lépe indexovány Seznamem. Já třeba používám vyhledávání směrované právě na vyhledávač Seznamu.
V době, kdy jsem psal "parazitní" formulář, jak tomu říkal Yuhů, ptal jsem se na technické podpoře Seznamu a tam mi řekli, že to tak udělat mohu a že časem také chystají spuštění podobné služby, jako má Google, aby to bylo pohodlnější i pro více amatérské tvůrce webu.
A čas se naplnil, takže můžete využít i Vlastní vyhledávání od Seznamu.
Tento web jsem zakládal na střední, v roce 2008. Je zde hlavně archiv mé tvorby.
Aktuální věci publikuji kvůli úspoře času na Twitter.
Honza
"Náš blahobyt nespočívá v tom, co máme, ale v tom, co nás těší."