Najdete co hledáte III?

9. duben 2008 VaDo

V tomto díle bychom si mohli říci něco o zkrocení vyhledávají služby. Jak s ní pracovat, jak ji nastavit. V předchozích dílech jsme si řekli

Nyní se tedy zaměříme na samotný proces vyhledávání. Samotné vyhledávání je rozloženo do několika samostatných procesů z důvodu větší bezpečnosti

  • Indexer process (searchindexer.exe) je služba, která se stará o základní vyhledávací a indexovací činnost. Tato služba běží v kontextu LocalSystem, má ale odstraněna veškerá nepotřebná oprávnění vyjma SE_BACKUP_PRIVILEGE, které ji umožní číst všechny soubory a složky, a SE_MANAGE_VOLUME_PRIVILEGE, které ji umožní integrovat se do deníku služby NTFS a tak zachytávat změny v souborech, které je potřeba reindexovat z důvodu změn. Toto platí pouze na Windows Vista, na Windows XP tato služba také běží pod kontextem LocalSystem, ale bez odstranění nepotřebných oprávnění, protože odstraňování nepotřebných oprávnění je nové vlastnost architektury Windows Vista.
  • Systémový filtrovací deamon (Searchprotocol-host.exe) je samostatný proces, který hostí iFilter handlery pro jednotlivé typy souborů. Tento proces přebírá informace z jednotlivých iFilters, které do tohoto procesu publikují informace pro indexování. Tento proces běží též v kontextu LocalSystem. To je nezbytné kvůli přístupu ke všem souborům, které má indexovat.
  • Uživatelský filtrovací deamon (také SearchProtocol-host.exe) je druhý samostatný proces, který běží tentokrát v kontextu přihlášeného uživatele. Jeho funkce je stejná jako Systémového filtrovacího daemona, ale k některým informacím je potřeba přistupovat pod kontextem aktuálního uživatele.
  • Hostitelský proces filtrů hledání (SearchFilterHost.exe) je hostitelský proces pro jednotlivé iFilters. Tyto jsou vyjmuty z hlavního indexovacího procesu kvůli jeho stabilitě (pokud některý iFilter zhavaruje, nenaruší to stabilitu indexovacího jádra).
  • IFilters vlastně nedělají nic jiného, než převádí určitý typ souboru do prostého textu, který potom hlavní indexovací služba přečte a zaindexuje. Takže podrobnosti indexování jsou určeny schopností iFilteru převádět a získávat informace ze sdrojového souboru.

Proces indexování

Jak se soubory indexují?  Postup je poměrně složitý, hlavně kvůli předávání informací z jednoho procesu na druhý.

  1. Žurnál NTFS upozorní na změnu souboru hlavní indexovací proces.
  2. Indexovací proces se pokusí zavést proces hostování filtrů, pokud již neběží
  3. Odešla adresu URL (nebo cestu) souboru do fronty k indexování. Když proces indexování začne tento soubor indexovat, vybere podle typu souboru správný iFilter. Poté se zaindexují vlastnosti souboru,pokud jsou nějaké k indexování.
  4. V hostiteli filtrů se zavede příslušný iFilter, pokud není zaveden a ten vrátí indexovací bloky textu pro indexování.
  5. V procesu indexování se tyto bloky rozdělí podle příslušného jazykového nastavení na jednotlivé slova a fráze a text se odešla do indexovací roury.
  6. V indexovací rouře se vytvoří seznamy slov a frází. Jednotlivé výskyty se zaindexují podle počtu výskytů a polohy
  7. Výsledný index se zapíše do hlavního katalogu

Náročnost procesu vyhledávání

Po přečtení těchto řádek jste jistě skočili po ovládacích panelech a začli proces indexování zastavovat. Takovej žrout výkonu! Ale ne, není to tak strašné. Indexovací proces má logiku pro odstavení vyhledávání v závisloti na zatížení a používání počítače. Hlavním smyslem této logiky je umožnit indexovacímu procesu používat veškeré prostředky pouze pokud není počítač využíván. Pokud jej začnete používat, pokusí se okamžitě provést ukončení svých procesů, popřípadě dokonce jejich odstranění z paměti. Ve většině příadů ale dochází pouze k omezenému používání počítače (používání internetu, čtení pošty, psaní dokumentu). V tyto okamžiky je proces indexování silně omezen, není však zastaven zcela.

Jaké to parametry se monitorují?

Kvůli procesu odstavení je monitorováno několik ukazatelů výkonu v počítači a podle jejich stavu se provádí buď zpomalení nebo úplné odstavení indexovacího procesu.

  • Počet operací I/O (vstupně výstupní operace) - například čtení z disku, z disku CD.
  • Vysoký počet oznámení o změnách - pokud vyhledávací proces dostává z žurnálu NTFS vysoký počet oznámení o změnách, předpokládá se, že dochází k velkým změnách v umístění a obsahu indexovaných souborů. Zareagtuje na to svým odstavením, aby tyto změny nezdržoval.
  • Činnost uživatele - pokud je detekována činnost uživatele v uživatelském prostředí, je služba indexování zpomalena, aby byla zajištěna vysoká odezva uživatelského prostředí.
  • Nízký stav baterie - na notebookách na počítačích připojených na UPS, pokud je detekována činnost na baterie a zároveň nízký stav baterie, je služba indexování zastavena, aby nebrala zbytečně energii.
  • Nízká dostupná paměť - pokud ubývá paměť, je služba indexování zpomalena a omezen počet vláken a pokud je potřeba, je činnost indexování zastavena.
  • Vysoká spotřeba CPU - pokud je zátěž procesru vysoká, je nejprve indexovací činnost omezena a pokud je stále vysoká zátěž, nakonec odstavena.
  • Malý prostor na disku - pokud dochází místo na disku, je indexovací služba zastavena.
  • Externě vynucené odstavení - lze omezit například přímo z aplikace zavoláním uspání indexovacího procesu pomocí rozhraní COM.

Na Windows Vista je zapnuto jen hlídání uživatelského UI - činnost uživatele, spotřeba paměti a zátěž CPU. Ostatní parametry ukončení jsou vypnuty.Ty se budou zase naopak používat na Search serveru na Windows 2008.

Všechny tyto parametry je možno upřesnit v registru HKLM\Software\Microsoft\Windows Search\Gathering Manager. Ale opět upozornění, jakékoliv změny v registru mohou úplně odstavit Váš počítač.

Spolupráce

Windows Vista si neumí navzájem pomáhat při hledání na siťových discích. Takže pokud chcete mít zaindexovaný obsah disku na kolegovo PC, musíte si jej přidat do svého indexovacího prostoru. Windows 2008 by tuto funkcionalitu měli mít. Takže pokud indexován serverem obsah disku, vyhledávací služba požádá o výsledky tento server a nebude muset provádět indexaci sama.

Co dál?

V dalším díle se povíme ještě nějaké drobnosti o uživatelském prostředí vyhledávání a jak toto prostředí nadále vylepšovat a lépe a snáze používat a využívat k vyšší účinnosti práce.

Pokud se chcete dozvědět více, doporučuji MS Vista Resource Kit. Vyjde i v češtině.

Klíčová slova: hledání, indexing, windows search, služba hledání, windows desktop search, WDS

Pokračujte ve čtení

Další
Jsou to fotři
Předchozí
Odkazy