Delen via


Filterhandlers die worden verzonden met Windows

Microsoft levert verschillende standaardfilters met Windows Search. Clients noemen deze filterhandlers (die implementaties zijn van de IFilter-interface) om tekst en eigenschappen uit een document te extraheren.

Dit onderwerp is als volgt ingedeeld:

Implementatieopmerkingen voor Windows Search

In Windows 7 en hoger worden filters die zijn geschreven in beheerde code expliciet geblokkeerd. Filters moeten worden geschreven in systeemeigen code vanwege mogelijke problemen met CLR-versiebeheer met het proces waarin meerdere invoegtoepassingen worden uitgevoerd.

Implementatie van Windows 7 en 10

In Windows 7 en hoger is er nieuw gedrag bij het registreren van een filterhandler, eigenschapshandler of nieuwe extensie. Wanneer een nieuwe eigenschapshandler en/of filterhandler is geïnstalleerd, worden bestanden met de bijbehorende extensies automatisch opnieuw geïndexeerd.

In Windows 7 en hoger raden we u aan een filterhandler te installeren in combinatie met de bijbehorende eigenschapshandlers en dat u de filterhandler registreert vóór de eigenschapshandler. De registratie van de eigenschapshandler initieert onmiddellijk opnieuw indexeren van eerder geïndexeerde bestanden zonder eerst opnieuw op te starten en maakt gebruik van eerder geregistreerde filterhandlers voor inhoudsindexering.

Als alleen een filterhandler is geïnstalleerd zonder een bijbehorende eigenschapshandler, vindt automatisch opnieuw indexeren plaats na het opnieuw opstarten van de indexeringsservice of een herstart van het systeem.

Zie de volgende referentieonderwerpen voor beschrijvingen van eigenschappen die specifiek zijn voor Windows 7: GETPROPERTYSTOREFLAGS, PROPDESC_COLUMNINDEX_TYPE en PROPDESC_SEARCHINFO_FLAGS.

Windows Vista-implementatie

In Windows Vista en eerder start het installeren van een IFilter of eigenschapshandler geen herindexering van bestaande items, tenzij een onafhankelijke softwareleverancier (ISV) expliciet een herbouw of herindexering van overeenkomende URL's aanroept.

Er zijn twee belangrijke verschillen tussen oudere toepassingen, zoals Indexing Service en nieuwere toepassingen zoals Windows Search, waar u rekening mee moet houden bij het implementeren van filters:

  • Gebruik van de IPersistStream interface.
  • Gebruik van eigenschapshandlers.

Eerst moet u voor Windows Vista en Windows Search 3.0 en hoger IPersistStream gebruiken om de volgende redenen:

  • Om prestaties en toekomstige compatibiliteit te garanderen.
  • Om de beveiliging te verbeteren. Filters die zijn geïmplementeerd met IPersistStream- zijn veiliger omdat de context waarin het filter wordt uitgevoerd geen rechten nodig heeft om bestanden op de schijf of via het netwerk te openen.

Hoewel Windows Search alleen IPersistStreamgebruikt, kunt u ook IPersistFile Interface en/of IPersistStorage Interface implementaties opnemen in uw filters voor achterwaartse compatibiliteit.

Het tweede grote verschil is dat Windows Vista en Windows Search 3.0 en hoger een nieuwe Property System hebben die eigenschapshandlers gebruikt om eigenschappen van items op te sommen.

Er zijn echter momenten waarop u een filter moet implementeren dat zowel inhoud als eigenschappen verwerkt om het volgende te doen:

  • Ondersteuning voor verouderde MSSearch-implementaties.
  • Doorkruisingskoppelingen.
  • Taalgegevens behouden.
  • Ingesloten items recursief filteren.

In deze situaties hebt u een volledige filter-implementatie nodig, waaronder de methode IFilter::GetValue voor toegang tot eigenschapswaarden.

Verouderde implementatie

Zoals eerder vermeld, bevatten Windows Vista en Windows Search een nieuw eigenschappensysteem waarmee de eigenschappen van een item worden ingekapseld die gescheiden zijn van de inhoud van een item. Dit eigenschapssysteem bestaat niet in eerdere versies van Microsoft Windows Desktop Search (WDS) 2.x. Als uw filter ondersteuning moet bieden voor andere toepassingen zoals hierboven beschreven, moet het mogelijk zowel inhoud als eigenschappen verwerken.

Zie de volgende onderwerpen, IFilter (voor oudere toepassingen)en Ontwikkelen van filterinvoegtoepassingen (voor oudere toepassingen)voor meer informatie over het ontwikkelen van een compatibel filter.

Windows Search-filters

Microsoft levert verschillende standaardfilters met Windows Search. De IFilter DLL-inhoud worden samengevat in de volgende tabel. Als u op de naam van een filterhandler klikt, gaat u naar de beschrijving voor die IFilter implementatie.

Filterhandler Bestanden gefilterd IFilter DLL
MIME-filterhandler Multipurpose Internet Mail Extension (MIME) mimefilt.dll
HTML-filterhandler HTML 3.0 of eerder nlhtml.dll
documentfilterhandler Microsoft Word, Excel, PowerPoint offfilt.dll
filterhandler voor tekst zonder opmaak Tekstbestanden zonder opmaak - Standaard-IFilter query.dll
binaire of null-filterhandler Binaire bestanden - Null IFilter query.dll

MIME-filterhandler

De MIME-filterhandler (in mimefilt.dll) extraheert tekst- en eigenschapsgegevens uit bestanden met de extensies .eml, .mht en .mhtml.

HTML-filterhandler

De HTML-filterhandler (in nlhtml.dll) extraheert tekst- en eigenschapsgegevens uit de klasse HTML-bestanden, zodat deze kan worden geïndexeerd door Windows Search. Zie voor een beschrijving van de koppeling tussen IFilter- en bestandstype 'De IFilter-DLL voor een bestand zoeken' in Filterhandlers registreren.

U kunt de functie META tag van HTML-documenten gebruiken om speciale verwerkingsaanvragen over te brengen naar de HTML-IFilter-. META tags vinden plaats aan het begin van een HTML-bestand binnen de HEAD ... /HEAD tags, zoals geïllustreerd in het volgende voorbeeld.

   <head>
     <META NAME="DESCRIPTION"
           CONTENT="This text appears on the results page as the document's summary.">
   </head>

Sommige HTML-META tags worden automatisch toegewezen aan bekende waarden voor eigenschappenset en eigenschaps-id (eigenschaps-id(PID)), zodat query's op deze eigenschappen de toegewezen inhoud doorzoeken. Enkele voorbeelden worden vermeld in de volgende tabel. Zie System-Defined Eigenschappen voor aangepaste bestandsindelingenvoor een lijst met systeemeigenschappen die u voor uw bestandsindelingen kunt gebruiken.

Voorbeeld van eigenschap Toegewezen aan
meta name="author" content="ruth" De auteureigenschap in de eigenschappenset Samenvattingsgegevens.
meta name="subject" content="tekstverwerking" De onderwerpeigenschap in de eigenschappenset Samenvattingsinformatie.
meta name="keywords" content="fonts, serif" De trefwoordeigenschap in de eigenschappenset Samenvattingsgegevens.
meta name="ms.category" content="fiction" De categorie-eigenschap in de eigenschappenset Samenvattingsinformatie van het document.

Sommige functies van de HTML-IFilter worden weergegeven in de volgende tabel.

Taak Actie Voorbeeld
Speciale abstracts maken van bestanden Gebruik de META NAME="DESCRIPTION"...-tag om de IFilter- de tekenreeks te gebruiken die volgt op het CONTENT trefwoord als abstract document.

Opmerking:
Het filterproces kan abstracts genereren voor elk gefilterd bestand, dat standaard een set tekens aan het begin van het bestand is.


<head>
  <META NAME="DESCRIPTION" CONTENT="This text will appear on the results page as the document's summary.">
</head>
 
Voorkomen dat afzonderlijke bestanden worden gefilterd Voeg een meta name tag toe aan het bestand.
  <meta name="robots" content="noindex">
De taalcode voor een bestand instellen (om ervoor te zorgen dat het systeem de juiste taaltermonderbrekers en ruiswoordbestanden kiest) Voeg de volgende meta name tag toe aan het bestand, waarbij het inhoudsveld de juiste taalcode opgeeft (in tekens of met behulp van de landinstellingswaarde).
<meta name="ms.locale" content="EN">
<meta name="ms.locale" content=1033>

Documentfilterhandler

De documentfilterhandler (in offilt.dll) filtert bestanden voor sommige extensies van documenten in Microsoft Office. Dit zijn bijvoorbeeld bestanden met de extensies .doc, .mdb, .ppten .xlt.

Filterhandler voor tekst zonder opmaak

Voor tekstbestanden zonder opmaak gebruikt Windows Search de handler voor tekstfilters, waarmee zowel de systeemeigenschappen (zoals bestandsnamen) als de inhoud van een bestand worden gefilterd. Wanneer een bestandstype geen IFilter koppeling in het register heeft, indexeert Windows Search alleen de Shell-eigenschappen voor het bestand. De gebruiker kan echter de Geavanceerde opties in het configuratiescherm van Indexeringsopties gebruiken om eigenschappen van indexeigenschappen of indexeigenschappen en bestandsinhoudte.

schermafbeelding met het dialoogvenster Geavanceerde opties

Als de gebruiker deze optie kiest voor een bestandstype zonder een gekoppeld IFilter, wordt de tekstfilterhandler gebruikt om de inhoud van het bestand te extraheren. De tekstfilterhandler begrijpt geen documentindeling; bij het filteren van de inhoud van een bestand wordt het bestand behandeld als een reeks tekens. Aan het begin van het bestand wordt gecontroleerd op de Unicode-bytevolgordemarkering.

Binaire of Null-filterhandler

Wanneer een geregistreerd binair bestand wordt aangetroffen, wordt de null-filterhandler gebruikt. De null-filterhandler haalt alleen de systeemeigenschappen op. De inhoud van een binair bestand wordt niet gefilterd. Voorbeelden van systeemeigenschappen zijn FileName, LastWriteTime, FileSizeen kenmerken.

Aanvullende informatiebronnen

Filterhandlers ontwikkelen

Over filterhandlers in Windows Search

aanbevolen procedures voor het maken van filterhandlers in Windows Search

eigenschappen retourneren van een filterhandler

Filterhandlers implementeren in Windows Search

Filterhandlers registreren

Filterhandlers testen