Fulltextové vyhledávání ( anglicky Full text search , francouzsky Recherche en texte integration ) je automatizované vyhledávání dokumentů, při kterém se vyhledávání neprovádí podle názvů dokumentů, ale podle jejich obsahu, všech nebo jejich významné části. [1] Mnoho webových stránek a aplikací (jako jsou programy pro zpracování textu) poskytuje možnosti fulltextového vyhledávání. Některé webové vyhledávače, jako je AltaVista, používají metody fulltextového vyhledávání, zatímco jiné indexují pouze podmnožinu webových stránek kontrolovaných jejich indexovacími systémy.
První verze programů pro fulltextové vyhledávání zahrnovaly skenování celého obsahu všech dokumentů při hledání daného slova nebo fráze. Při použití této technologie trvalo hledání velmi dlouho (v závislosti na velikosti databáze) a na internetu by to bylo nemožné. Moderní algoritmy tvoří tzv. fulltextový index pro vyhledávání předem - slovník, který uvádí všechna slova a uvádí, kde se vyskytují. Pokud takový rejstřík existuje, stačí v něm vyhledat potřebná slova a hned se získá seznam dokumentů, ve kterých se vyskytují.
Fulltextové indexy v MySQL se označují jako typ "FULLTEXT", který lze použít pro sloupce "VARCHAR" i "TEXT". Při hromadném přidávání dat do tabulky s FULLTEXT poli se index vytvoří okamžitě, což zpomalí práci, pro zamezení efektu se doporučuje pole po přidání upgradovat.
Vyhledávání se provádí pomocí funkcí MATCH() a AGAINST():
SELECT * FROM článků WHERE MATCH ( title , body ) AGAINST ( 'search' );V tomto případě musí být hledaná fráze napsána slovo od slova (to znamená, že „hledat“, „vyhledávač“ jsou pro výše uvedený příklad neplatné možnosti)
Výsledek (shody jsou vyznačeny tučně):
id | titul | tělo |
---|---|---|
5 | Regulární výrazy | Většina implementací regulárních výrazů má způsob, jak hledat část textu... |
jeden | Fulltextové vyhledávání | Fulltextové vyhledávání ... |