Sdílet prostřednictvím


Windows Search jako vývojová platforma

Chcete-li indexovat obsah a vlastnosti nových formátů souborů a úložišť dat, musí být služba Microsoft Windows Search rozšířena o doplňky.

Než vývojář jiných výrobců nových formátů souborů a úložišť dat získá tyto formáty a úložiště dat, aby se zobrazily ve výsledcích dotazů v Průzkumníku Windows, musí vývojář udělat tyto tři věci:

  • Implementujte zdroj dat prostředí pro rozšíření oboru názvů prostředí.
  • Vystavení položek v úložišti dat (pokud přidávají nové úložiště dat, protože by bylo potřeba je indexovat).
  • Vytvořte obslužnou rutinu protokolu, aby služba Windows Search přistupovala k datům pro indexování.

Toto téma je uspořádané takto:

Začínáme

Než začnete vytvářet aplikaci Windows Search, nezapomeňte, že upřednostňovaným způsobem, jak to udělat, je prostřednictvím zdroje dat shellu. Zdroj dat prostředí rozšiřuje obor názvů prostředí a zveřejňuje položky v úložišti dat. Položky v úložišti dat je pak možné indexovat systémem Windows Search pomocí obslužné rutiny protokolu. Tento nepřímý přístup pro přístup ke službě Windows Search implementací zdroje dat shellu je upřednostňovaný, protože poskytuje přístup k úplným funkcím prostředí. Tímto způsobem zajistíte rozumné uživatelské prostředí.

Pokud chcete, aby se výsledky dotazu zobrazovaly v Průzkumníku Windows, musíte před vytvořením obslužné rutiny protokolu vytvořit obslužnou rutinu protokolu pro rozšíření indexu. Pokud však budou všechny dotazy programové (například prostřednictvím OLE DB) a interpretovány kódem aplikace místo prostředí, je obor názvů prostředí stále upřednostňovaný, ale nevyžaduje se.

Obslužná rutina protokolu je nutná pro Systém Windows k získání znalostí o obsahu souborů, jako jsou například položky v databázích nebo vlastních typech souborů. Windows Search sice může indexovat název a vlastnosti souboru, ale Systém Windows nemá žádné znalosti o obsahu souboru. V důsledku toho nelze tyto položky indexovat ani vystavit v prostředí Windows Shell. Implementací vlastní obslužné rutiny protokolu můžete tyto položky zveřejnit. Seznam obslužných rutin identifikovaných scénářem vývojáře, který se pokoušíte dosáhnout, najdete v tématu Přehled obslužných rutin.

Přehled scénářů vývoje vyhledávání

Nejběžnějšími vývojovými scénáři ve Službě Windows Search jsou:

Přidání nového úložiště dat

Úložiště dat prostředí pro Windows Search potřebujete jenom v případě, že přidáváte nové úložiště dat, které se má indexovat. Úložiště dat je úložiště dat, které je možné vystavit programovacímu modelu Prostředí jako kontejneru pomocí zdroje dat Prostředí. Položky v úložišti dat je pak možné indexovat systémem Windows Search pomocí obslužné rutiny protokolu. Obslužná rutina protokolu implementuje protokol pro přístup ke zdroji obsahu v nativním formátu. Rozhraní ISearchProtocol a ISearchProtocol2 rozhraní se používají k implementaci vlastní obslužné rutiny protokolu k rozšíření zdrojů dat, které lze indexovat. Informace o vytváření zdroje dat prostředí naleznete v tématu Implementace rozhraní objektů základní složky.

Přidání nového formátu souboru

Pokud přidáte nový vlastní formát souboru, musíte vyvinout buď obslužnou rutinu filtru, nebo obslužnou rutinu vlastnosti, ale ne obojí. Filtr je implementace rozhraní IFilter. Otevře soubory určitého typu souboru a filtruje vlastnosti a bloky textu pro indexer. Filtry jsou přidruženy k typům souborů, které jsou označené příponami názvů souborů, typy MIME nebo identifikátory tříd (CLSIDs). I když jeden filtr dokáže zpracovat více typů souborů, každý typ souboru funguje pouze s jedním filtrem.

Obslužná rutina vlastnosti překládá data uložená v souboru do strukturovaného schématu, které rozpozná a je možné k němu přistupovat průzkumníkem Windows, službou Windows Search a dalšími aplikacemi. Tyto systémy pak můžou s obslužnou rutinou vlastnosti pracovat s zápisem a čtením vlastností do a ze souboru. Přeložená data zahrnují zobrazení podrobností, popisy informací, podokno podrobností, stránky vlastností atd. Každá obslužná rutina vlastnosti je přidružena k určitému typu souboru identifikované příponou názvu souboru. K provedení následujících kroků potřebujete obslužnou rutinu vlastnosti:

  • Zobrazení neindexovaných vlastností položek v uživatelském rozhraní
  • Podpora vlastností zápisu

Využívání výsledků hledání ve Windows

Následující části popisují několik způsobů využívání výsledků služby Windows Search:

Dotazování dat

Vývojáři, kteří píšou aplikace nad kombinovaným systémem windows Search a vlastností Windows, mají přístup k souborům a položkám bez ohledu na aplikaci nebo typ souboru. Aplikace mají přístup k datům indexeru dvěma způsoby:

  • Aplikace komunikují přímo s OLE DB odesláním dotazů SQL (Windows Search Structured Query Language) do zprostředkovatele OLE DB služby Windows Search za účelem načtení výsledků. Dotazy lze vytvořit ručně nebo pomocí rozhraní ISearchQueryHelper k vygenerování SQL z klíčových slov vyhledávání a rozšířené syntaxe dotazů (AQS).
  • Aplikace pracují přes vrstvu Prostředí. Výhodou vrstvy Prostředí je, že podporuje také další zdroje, jako je grep. Nevýhodou je ale to, že nejsou k dispozici všechny funkce indexeru.

Další možností je použití protokolů search-ms:// a search://, které provádějí vyhledávání na základě adresy URL vykreslené prostřednictvím Průzkumníka Windows. Tato možnost umožňuje nejlehčí vývoj, ale nevrací výsledky nebo výběry uživatelů ze zobrazení výsledků volající aplikaci. Podobně jako jiné protokoly můžou vyhledávací aplikace třetích stran převzít protokoly search-ms:// a search://, pokud aplikace odpovídají požadované sadě funkcí. Další informace o dotazování najdete v tématu Proces dotazování ve službě Windows Search a Dotazování indexu prostřednictvím kódu programu.

Ve Windows 7 a novějších nabízí federované vyhledávání nového poskytovatele vyhledávání, který dotazuje vzdálené úložiště dat prostřednictvím webových serverů, prostřednictvím protokolu OpenSearch a vytvoří výčet výsledků jako informační kanály RSS nebo Atom XML. Vyhledávací konektory jsou spojení oborů názvů, které simulují chování složky pomocí zprostředkovatele vyhledávání. Další informace o federaci vyhledávání ve vzdálených úložištích dat ve Windows 7 naleznete v tématu Federované vyhledávání ve Windows.

Indexování souborů a položek

Obsah indexovaný je založený na souborech a datových typech podporovaných prostřednictvím doplňků zahrnutých ve službě Windows Search a výchozích pravidel zahrnutí a vyloučení pro složky v systému souborů. Například filtry zahrnuté ve vyhledávání oken podporují více než 200 běžných typů dat, včetně dokumentů Microsoft Office, e-mailu Aplikace Microsoft Outlook (ve spojení s obslužnou rutinou protokolu MAPI), souborů prostého textu, HTML a mnoha dalších. Úplný seznam typů souborů, které jsou nativně podporovány, najdete v tématu Co je součástí indexu.

Index lze rozšířit pomocí obslužných rutin vlastností a filtrů, aby byl obsah a vlastnosti nových formátů souborů vystaveny indexu a Průzkumníku Windows. Filtry jsou implementace rozhraní IFilter. Existují dva druhy filtrů: jeden, který komunikuje s jednotlivými položkami, jako jsou soubory a jeden, který komunikuje s kontejnery, jako jsou složky. Filtry jsou víceúčelové v tom, že podporují blokování dat, textového obsahu, některých vlastností a více jazyků.

Naproti tomu obslužné rutiny vlastností mají konkrétnější účel: zveřejnění vlastností konkrétních typů souborů, které jsou identifikovány příponami názvů souborů. Obslužná rutina vlastnosti pro typ souboru může povolit získání a nastavení vlastností a může vytvořit výčet vlastností přidružených k danému typu souboru. Na rozdíl od filtrů obslužné rutiny vlastností nepodporují chucking dat nebo textový obsah a obslužné rutiny vlastností nemají žádný způsob, jak indikovat, v jakém jazyce je vlastnost textu, pokud nepodporují vlastnosti zápisu.

Indexování úložiště dat

Index lze rozšířit pomocí obslužných rutin protokolu, aby byl zajištěn přístup k vlastním úložištům dat. Například soubory a položky obsažené v jiných úložištích dat než souborového systému (například v databázích a úložištích e-mailů) vyžadují, aby obslužná rutina protokolu namapovaná z adresy URL na datový proud. Obslužné rutiny protokolu také můžou volitelně určit správné filtry, které se mají použít k extrakci informací z datového proudu. Filtruje výčet adres URL úložiště dat. Položky se pak indexují jednotlivě pomocí správného filtru nebo obslužné rutiny vlastnosti. Další informace naleznete v tématu Rozšíření indexu.

Správa procesu indexování

Vývojáři aplikací můžou řídit rozsah a frekvenci indexování služby Windows Search pomocí různých rozhraní pro správu. Tato rozhraní zahrnují funkce pro přidání a odebrání adresářů, které indexer vyhledává změny, ručně informovat index změn dat, zkontrolovat stav indexeru a vynutit opětovné indexování některých nebo všech dat. Další informace naleznete v tématu Správaindexu .

Integrace systému vlastností Systému Windows s aplikacemi windows Search

Systém vlastností Systému Windows je rozšiřitelný systém pro čtení a zápis definic dat, který poskytuje jednotný způsob vyjádření metadat o položkách prostředí. Systém Vlastností systému Windows v systému Windows Vista a novější umožňuje ukládat a načítat metadata pro položky prostředí. Položka prostředí je libovolná část obsahu, například soubor, složka, e-mail nebo kontakt. Vlastnost je jednotlivá metadata přidružená k položce prostředí. Hodnoty vlastností jsou vyjádřeny jako struktura PROPVARIANT.

Rozsáhlý seznam společných vlastností je součástí řady běžných typů položek, jako jsou fotky, hudba, dokumenty, zprávy, kontakty a soubory. Vývojáři také můžou do platformy zavést vlastní vlastnosti, pokud žádná existující vlastnost nevyhovuje jejich potřebám. Další informace o integraci aplikací se systémem vlastností Windows naleznete v tématu Vývoj obslužných rutin vlastností.

Přehled obslužných rutin

Obslužná rutina je objekt modelu COM (Component Object Model), který poskytuje funkce pro položku prostředí. Většina zdrojů dat Shellu nabízí rozšiřitelný systém pro obslužné rutiny vazeb s položkami. Například složka systému souborů používá systém přidružení k vyhledání obslužných rutin pro určitý typ souboru. Pro každý typ souboru je vyžadována konkrétní obslužná rutina. Jedna obslužná rutina filtru je vyžadována pro typ souboru Adobe Acrobat .pdf, například pro .doc formát souboru je vyžadována jiná obslužná rutina filtru atd.

Různé obslužné rutiny mají určitou společnou důležitost. V systému Windows Vista a novější musí všechny obslužné rutiny použít jedno z následujících rozhraní k inicializaci obslužné rutiny: IInitializeWithStream, IInitializeWithItem, nebo IItinitializeWithFile.

Následující tabulka uvádí úlohy vývojářů vysoké úrovně, typ obslužné rutiny potřebné pro každý úkol a poskytuje odkaz na koncepční informace o tom, jak jednotlivé úlohy provádět.

Úkol Obslužná rutina Koncepční informace
Přístup k vlastnostem souboru pro indexování Obslužná rutina vlastnosti vývoj obslužných rutin vlastností
vlastnosti System-Defined pro vlastní formáty souborů
Přidání formátů schránky pro datový objekt (IDataObject) položky (datové objekty se používají ve scénářích přetažení a kopírování a vkládání.) Obslužná rutina datového objektu vytváření obslužných rutin dat
Přidání sloves pro položku, která se běžně zobrazuje v místní nabídce Obslužná rutina místní nabídky vytváření obslužných rutin místní nabídky
přizpůsobení místní nabídky pomocí dynamických příkazů
Přidružení typu souboru ke konkrétní ikoně Obslužná rutina ikony vytváření obslužných rutin ikon
Vytváření seznamů vlastností s obrázky a ovládacími prvky uživatelského rozhraní, které umožňují vlastní interakci s typem souboru Obslužná rutina seznamu vlastností obslužné rutiny seznamu vlastností
Povolení typu položky pro podporu scénářů přetažení a kopírování a vkládání Obslužná rutina přetažení přenesení objektů prostředí přetažením a schránky
Extrahování bloků textu a vlastností dokumentu pro indexování Obslužná rutina filtru vývoj obslužných rutin filtru
Indexování nového typu souboru Obslužná rutina filtru, obslužná rutina vlastností vývoj obslužných rutin filtru
vývoj obslužných rutin vlastností
Indexování obsahu úložiště dat Obslužná rutina protokolu Vývoj obslužných rutin protokolu
Zobrazení náhledu zjednodušeného zobrazení položky prostředí v podokně náhledu Průzkumníka Windows Obslužná rutina náhledu obslužných rutin náhledu
Zadání automaticky otevíraných textů při najetí myší na objekt uživatelského rozhraní Popisovač informačního popisu vytváření obslužných rutin rozšíření prostředí (přizpůsobení informačního popisu)
Zadání statického obrázku představující položku prostředí Obslužná rutina miniatur obslužné rutiny miniatur

 

Následující tabulka uvádí obslužné rutiny a rozhraní pro implementaci každého typu obslužné rutiny.

Obslužná rutina Rozhraní
Obslužná rutina přetažení IDropTarget, IDropTargetHelper, IPersistFile, IShellExtInit
Obslužná rutina datového objektu IDataObject, IPersistFile
Obslužná rutina filtru IFilter
Obslužná rutina ikony IExtractIcon
Volitelné: IPersist, IPersistFile
Popisovač informačního popisu IQueryInfo
Obslužná rutina náhledu IPreviewHandler
Obslužná rutina vlastnosti IPropertyStore
Obslužná rutina protokolu IFilter, ISearchProtocol, IUrlAccessor
Volitelné: ISearchProtocol2, IUrlAccessor2, IUrlAccessor3, IUrlAccessor4
Obslužná rutina seznamu vlastností IShellExtInit, IShellPropSheetExt
Obslužná rutina místní nabídky IContextMenu, IExplorerCommand, IShellExtInit
Obslužná rutina miniatur IThumbnailProvider

 

Poznámka

Obslužná rutina vlastnosti je někdy kown jako obslužná rutina metadat. Zdroj dat Shellu se někdy označuje jako rozšíření oboru názvů prostředí. Obslužná rutina typu souboru se někdy označuje jako obslužná rutina rozšíření shellu nebo rozšíření shellu.

 

Další informace o vytváření obslužných rutin naleznete v tématu Vytváření obslužných rutin rozšíření prostředí. Další informace o vlastnostech naleznete v tématu systém vlastností systému Windows.

Pokyny k instalačnímu programu doplňku

Při vytváření instalačního programu doplňku použijte následující pokyny:

  • Instalační program musí používat instalační program EXE nebo MSI.
  • Je nutné zadat poznámky k verzi.
  • Přidat nebo odebrat programy položka musí být vytvořena pro každý nainstalovaný doplněk.
  • Instalační program musí převzít všechna nastavení registru pro konkrétní typ souboru nebo uložit, kterému aktuální doplněk rozumí.
  • Pokud se předchozí doplněk přepíše, měl by instalační program uživatele upozornit.
  • Pokud novější doplněk přepsal předchozí doplněk, měl by být uživatel schopný obnovit funkce předchozího doplňku a znovu ho nastavit jako výchozí doplněk pro tento typ souboru nebo úložiště.

Poznámka k implementátorům

Před vytvořením obslužné rutiny filtru nebo vlastnosti by vývojáři měli zvážit následující:

  • Tyto obslužné rutiny jsou rozšíření v procesu, která jsou načtena do procesů, které neřídíte, jako je proces démon filtru, Průzkumník Windows (hledání grep) a hostitelé třetích stran, jako je Windows Mail).
  • Musíte napsat zabezpečený kód, který je dostatečně robustní pro zpracování libovolných poškozených forem formátu souboru, který byl vytvořen k útoku na systém.
  • Váš doplněk nesmí uniknout prostředkům, které způsobí problémy s hostitelskými procesy.
  • Váš doplněk nesmí dojít k chybovému ukončení, protože dojde také k chybovému ukončení hostitelských procesů a zpomalení procesu filtrování.
  • Vzhledem k tomu, že tyto obslužné rutiny běží v procesu systému na pozadí, musí rychle provádět s minimální spotřebou procesoru a vstupně-výstupních operací, aby splňovaly požadavky na výkon systému.

Proto by tyto doplňky měly napsat vývojáři s odbornými znalostmi při vytváření kódu na úrovni systému.

Další zdroje informací

Přehled služby Windows Search

jazyky podporované službou Windows Search

použití spravovaného kódu s daty prostředí a službou Windows Search

příručky pro vývojáře pro Windows Search