WebToDate/Fulltext/Instalace: Porovnání verzí

Z WebToDate
Skočit na navigaciSkočit na vyhledávání
m Nahrazení textu „[[Category:WebToDate 4.1“ textem „[[Category:WebToDate“
Řádek 1: Řádek 1:
[[Category:WebToDate 4.1 Fulltext]]
[[Category:WebToDate Fulltext]]
[[Category:Fulltext]]
[[Category:Fulltext]]
== Základní informace ==
== Základní informace ==

Verze z 13. 10. 2009, 13:42

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.)
Pokud je zapnuto ukládání do databáze, je možné ve variantě s databází MySQL zprávy fulltextově prohledávat pouze tehdy, je-li použita databáze MySQL verze 4 a vyšší.

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.

Doporučovaný režim je s hodnotou false, všechny možnosti tohoto modulu lze využít pouze v této konfiguraci.

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.
Ve WebToDate 3.7 byla podporován pouze DB server MySQL 3 a fulltextová indexace pro MySQL tudíž tehdy ještě neexistovala. Jestliže nicméně upgradujete z verze 3.7 na verzi vyšší, fulltextová indexace příslušných tabulek se automaticky doplní.

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:

  1. Zaregistrování modulu do systému WebToDate (tabulka MODULES)
  2. Vytvoření fulltextového katalogu 'webtodatekatalog'
  3. Vytvoření fulltextového indexu nad vybranými sloupci tabulky zpráv (NEWSDB)
  4. 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’
  5. 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)


U serveru MS SQL verze 2000 lze alternativně využít také automatického přeindexování po změně obsahu tabulky NEWSDB. Chcete-li tuto funkcionalitu využít, smažte automaticky vytvořenou naplánovanou úlohu ‘jméno_databáze Fulltext Indexing’ (je dostupná z konzole SQL Enterprise Manager v sekci Management/SQL Server Agent/Jobs) a nastavte automatickou reindexaci pomocí následujícího SQL skriptu: sp_fulltext_table 'NEWSDB', 'start_change_tracking' sp_fulltext_table 'NEWSDB', 'start_background_updateindex'