WebToDate/Fulltext/Instalace: Porovnání verzí
Založena nová stránka: Category:WebToDate 4.1 Fulltext Category:Fulltext == Základní informace == Nasazení fulltextového hledání se skládá ze dvou samostatných činností: * Ins… |
(Žádný rozdíl)
|
Verze z 28. 7. 2009, 15:33
Základní informace
Nasazení fulltextového hledání se skládá ze dvou samostatných činností:
- Instalace fulltextového stroje, který zajišťuje správnou fulltextovou indexaci.
- Vytvoření šablony a stylu pro vyhledávání, konfigurace vyhledávání.
Popis a závislosti
WebToDate může pracovat ve dvou režimech:
- Ukládání zpráv do databáze – v tomto případě se všechna pole zpráv ukládají do databáze MS SQL serveru nebo MySQL serveru
- Ukládání zpráv do souborů – v tomto případě se obsah polí POPIS a TELO ukládá do souborů v adresáři texts. Adresář pak obsahuje pro každou zprávu jeden HTML soubor, který kromě výše uvedených polí obsahuje formou META tagů některé duplicitní informace vzhledem k databázi (název kategorie, datum apod.)
Fulltextový režim se volí pomocí konstanty FULLTEXT, která se nastavuje v konfiguračním souboru /config/global.php.
Konstanta FULLTEXT může nabývat následujících hodnot
- true, pokud se mají informace o zprávách ukládat do souborů
- false, pokud se informace o zprávách mají ukládat do databáze
Nastavení je třeba provést před vložením první zprávy do databáze a již ho neměnit, jinak dojde k tomu, že část zpráv bude uložena v databázi, část v souborech a nebudou se správně zobrazovat ani prohledávat.
Soubory
Soubory modulu se nacházejí v adresářích
- scripts/modules/fulltext/
- application/modules/fulltext/
- rdata/resources/modules/fulltext
- swish/ (v případě použití programu Swish++ – viz výše)
Vyhledávání v databázi MySQL
Pokud je nastaven režim Ukládání zpráv do databáze (pomocí konstanty FULLTEXT, která se nastavuje v konfiguračním souboru /config/global.php) a je použita databáze MySQL verze 4 a vyšší, mohou být pro fulltextové vyhledávání použity fulltextové indexy MySQL.
Nastavení fulltextového vyhledávání
Před instalací modulu Fulltext:
- Nastavte konstantu ft_min_word_len databázového serveru MySQL na hodnotu 3.
- Ujistěte se, že konstanta character_set je nastavena v souladu s instalačním manuálem.
Reindexace fulltextového katalogu databáze probíhá automaticky při změně obsahu indexovaných tabulek, není tedy třeba nastavovat žádnou naplánovanou úlohu.
Vyhledávání v souborech – program Swish++
Pokud je nastaven režim Ukládání zpráv do souborů, fulltextový modul využívá k indexaci a prohledávání článků služeb programu Swish++ v4.8 ( dále jen Swish ), který je třeba zkompilovat a nainstalovat.
Instalace fulltextového vyhledávače Swish++
Nedoporučuje se používat jinou verzi, neboť tato verze obsahuje úpravy pro použití s WebToDate, jako je řazení příspěvků podle času. Navíc u nových verzí Swish došlo ke změně formátu výstupu, na který není WebToDate připraven.
Kompilace zdrojových souborů programu Swish
Zdrojové soubory programu Swish jsou distribuovány spolu s WebToDate a nacházejí se v adresáři
swish/src
Setkáte-li se při kompilování s problémy, lze je obvykle vyřešit úpravou konfiguračního souboru
config/config.mk
Některé problémy lze vyřešit následujícími způsoby:
- Nastavením nižší úrovně optimalizace
- Statickým zkompilováním programu
Po úspěšném zkompilování získáme programy index a search, které nakopírujeme do adresáře swish/bin
Instalace programu Swish
K ovládání programu Swish lze použít skript swish/swish_wtd.sh, který nabízí následující možnosti:
- start – spustí Swish
- stop – ukončí Swish
- restart – restartuje Swish
- index – přeindexuje články a restartuje Swish
Před použitím skriptu swish_wtd.sh je třeba v tomto skriptu nastavit následující proměnné
- $webtodate – obsahuje cestu adresáře s instalací WebToDate
- $index – cesta k souboru s programem index
- $search – cesta k souboru s programem search
Lze změnit i obsah proměnných $SocketFile a $PidFile, ale změna proměnné $SocketFile se musí následně promítnout v konstantě SWISH_SCOKET, která se nastavuje v souboru config/global.php, a která se používá při připojování php skriptu k daemonu programu Swish.
Nakonec je třeba úpravou souboru crontab nastavit daemon Cron tak, aby v pravidelných intervalech (např. 1x za 30 minut) spouštěl skript swish/swish_wtd.sh s parametrem index, a docházelo tak k aktualizaci indexačního souboru.
Vyhledávání v databázi MS SQL
Popis a závislosti
Pro fulltextové indexování a hledání lze použít také fulltextový stroj MS SQL Serveru verze 7.0 SP3 a vyšší nebo 2000 SP3 a vyšší nebo 2005.
Využití stroje SQL serveru
Před instalací modulu Fulltext se ujistěte, že:
- je aktivována možnost fulltextové indexace. To zjistíte příkazem select DATABASEPROPERTY('jméno_databáze', 'IsFulltextEnabled). Fulltextovou indexaci případně povolíte příkazem sp_fulltext_database ‘enable’.
- běží služba služba SQL Server Agent
Instalace databáze probíhá standardně jako u všech přibalovaných modulů, viz instalační manuál. Tato instalace zahrnuje:
- Zaregistrování modulu do systému WebToDate (tabulka MODULES)
- Vytvoření fulltextového katalogu 'webtodatekatalog'
- Vytvoření fulltextového indexu nad vybranými sloupci tabulky zpráv (NEWSDB)
- Jsou-li již nainstalovány moduly Diskuze, Poradny a rozhovory nebo Kalendář akcí, pak také vytvoření fulltextového indexu nad vybranými sloupci tabulek těchto modulů. Tyto moduly jsou však zpravidla instalovány později než modul Fulltext, v tom případě se tyto fulltextové indexy vytvářejí až v rámci těchto modulů. U bodů b a c se při instlaci na MS SQL verze 2000 automaticky nastavuje pro všechny indexované sloupce atribut 'default full-text language' na hodnotu ‘Neutral’
- Vytvoření naplánované úlohy s názvem ‘jméno_databáze Fulltext Indexing’, která v půlhodinových intervalech provádí plnou reindexaci (full population) katalogu vytvořeného v bodě b)