Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Dit onderwerp is als volgt ingedeeld:
-
over het uitvoeren van query's in Windows Search
- lokale en externe vragen
- Overzicht van Structured Query-API
- Queriescenario's uitvoeren
- Verwante onderwerpen
Query's uitvoeren in Windows Search
Query's uitvoeren in Windows Search is gebaseerd op de volgende vier benaderingen:
- Geavanceerde querysyntaxis (AQS)
- Syntaxis voor natuurlijke zoekopdrachten (NQS)
- Gestructureerde Querytaal (SQL)
- Gestructureerde queryinterfaces
AQS is de standaard querysyntaxis die door Windows Search wordt gebruikt om een query uit te voeren op de index en om zoekparameters te verfijnen en te beperken. AQS is voornamelijk gericht op gebruikers en kan worden gebruikt door gebruikers om AQS-query's te bouwen, maar kan ook worden gebruikt door ontwikkelaars om programmatisch query's te bouwen. In Windows 7 is canonieke AQS geïntroduceerd en moet worden gebruikt voor het programmatisch genereren van AQS-query's. In Windows 7 en hoger kan een snelmenuoptie beschikbaar zijn op basis van of aan een AQS-voorwaarde wordt voldaan. Voor meer informatie, zie 'Dynamisch gedrag verkrijgen voor statische werkwoorden door geavanceerde querysyntaxis te gebruiken' in Contextmenu-handlers maken. AQS-query's kunnen worden beperkt tot specifieke bestandstypen, ook wel bestandstypen genoemd. Zie bestandstypen en koppelingenvoor meer informatie. Zie System.Kinden System.KindTextvoor referentiedocumentatie over de relevante eigenschappen.
NQS is een querysyntaxis die meer ontspannen is dan AQS en vergelijkbaar is met menselijke taal. NQS kan worden gebruikt door Windows Search om een query uit te voeren op de index als NQS is geselecteerd in plaats van de standaard-AQS.
SQL is een teksttaal waarmee query's worden gedefinieerd. SQL is gebruikelijk in veel verschillende databasetechnologieën. Windows Search maakt gebruik van SQL, implementeert een subset ervan en breidt deze uit door elementen toe te voegen aan de taal. Windows Search SQL breidt de standaard-SQL-92- en SQL-99-databasequerysyntaxis uit om de bruikbaarheid ervan te verbeteren met zoekopdrachten op basis van tekst. Alle functies van Windows Search SQL zijn compatibel met Windows Search op Windows XP en Windows Server 2003 en hoger. Zie Query's uitvoeren op de index met Windows Search SQL-syntaxisen overzicht van De syntaxis van Windows Search SQLvoor meer informatie over Windows Search SQL.
De API's voor gestructureerde query's worden verderop in dit onderwerp beschreven. Zie Queryinterfacesvoor referentiedocumentatie over de API's voor gestructureerde query's. Interfaces zoals ISearchQueryHelper helpen bij het samenstellen van SQL-tekenreeksen op basis van een set invoerwaarden. Met deze interface worden AQS-gebruikersquery's geconverteerd naar Windows Search SQL en worden querybeperkingen opgegeven die kunnen worden uitgedrukt in SQL, maar niet in AQS. Ook verkregen ISearchQueryHelper een OLE DB-verbindingsreeks om verbinding te maken met de Windows Search-database.
Lokale en externe zoekopdrachten
U kunt uw query's lokaal of extern uitvoeren. In het volgende voorbeeld wordt een lokale query weergegeven met behulp van de FROM-component. Een lokale query voert alleen query's uit op de lokale SystemIndex-catalogus.
FROM SystemIndex
Een externe query met behulp van de FROM-component wordt weergegeven in het volgende voorbeeld. Door ComputerName toe te voegen, wordt het vorige voorbeeld omgezet in een externe query.
FROM [<ComputerName>.]SystemIndex
Windows XP en Windows Server 2003 hebben standaard geen Windows Search geïnstalleerd. Alleen Windows Search 4 (WS4) biedt ondersteuning voor externe query's. Eerdere versies van Windows Desktop Search (WDS), zoals 3.01 en eerder, bieden geen ondersteuning voor externe query's. Met Windows Verkenner kunt u een query uitvoeren op de lokale index van een externe computer voor bestandssysteemitems (items die worden verwerkt door het protocol 'file:').
Om een item op afstand op te halen, moet het item voldoen aan de volgende vereisten:
- Toegankelijk zijn via een UNC-pad (Universal Naming Convention, een universele naamgevingsconventie).
- Bestaan op de externe computer waartoe de client toegang heeft.
- Stel de beveiliging zo in dat de client leestoegang heeft.
Windows Verkenner bevat functies voor het delen van items, waaronder een 'Openbaar' gedeelde map (\\Machine\Public\...) in het Netwerkcentrum en Gemeenschappelijk Gebruikscentrum, en een 'Gebruikers' gedeelde map (\\Machine\Users\...) voor items die worden gedeeld via de Wizard voor Delen. Nadat u de map(en) hebt gedeeld, kunt u een query uitvoeren op de lokale index door de computernaam van de externe computer op te geven in de FROM-component en een UNC-pad op de externe computer in de SCOPE-component. In het volgende voorbeeld wordt een externe query weergegeven met behulp van de FROM- en SCOPE-componenten.
SELECT System.ItemName FROM MachineName.SystemIndex WHERE SCOPE='file://MachineName/<path>'
De voorbeelden die hier worden gegeven, maken gebruik van SQL.
Overzicht van api voor gestructureerde query's
Een gestructureerde query biedt de mogelijkheid om te zoeken naar informatie door Booleaanse combinaties van query's over afzonderlijke eigenschappen. In dit onderwerp beschrijven we de functionaliteit van de belangrijkste gestructureerde query-API's en -methoden. Zie Queryinterfacesvoor referentiedocumentatie over de API's voor gestructureerde query's.
IQueryParser
De methode IQueryParser::Parse parseert een gebruikersinvoertekenreeks en produceert een interpretatie in de vorm van een IQuerySolution-. Als de parameter pCustomProperties parameter van die methode niet null is, is het een opsomming van IRichChunk objecten (één voor elke herkende aangepaste eigenschap). Met de andere IQueryParser methoden kan de toepassing verschillende opties instellen, zoals landinstellingen, een schema, een woordonderbreker en handlers voor verschillende typen benoemde entiteiten. IQueryParser::GetSchemaProvider retourneert een ISchemaProvider interface om door het geladen schema te bladeren.
IQuerySolution : IConditionFactory
De interface IQuerySolution biedt alle informatie over het resultaat van het parseren van een invoertekenreeks. Omdat IQuerySolution- ook een IConditionFactory--interface is, kunnen er extra voorwaardestructuurknooppunten worden gemaakt. De methode IQuerySolution::GetQuery produceert een voorwaardestructuur voor de interpretatie. IQuerySolution::GetQuery retourneert ook het semantische type.
IConditionFactory
IConditionFactory- creëert knooppunten van een voorwaardenstructuur. Als de parameter van IConditionFactory::MakeNotVARIANT_TRUEis, wordt de resulterende ICondition vereenvoudigd en hoeft het geen negatieknooppunt te zijn. Als de parameter pSubConditions van IConditionFactory::MakeAndOr niet null is, moet die parameter een opsomming zijn van ICondition--objecten en substructuren worden.IConditionFactory::MakeLeaf maakt een leaf-knooppunt met een opgegeven eigenschapsnaam, -bewerking en -waarde. De tekenreeks in de parameter pValueType moet de naam zijn van een semantisch type uit het schema. Als de parameter uitbreiden is VARIANT_TRUE en de eigenschap virtueel is, is de resulterende voorwaardestructuur doorgaans een disjunctie, resulterend uit het uitbreiden van de eigenschap naar de gedefinieerde componenten. Als dit niet null is, moeten de parameters pPropertyNameTerm, pOperatorTermen pValueTerm parameters termen identificeren die de eigenschap, bewerking en waarde aangeven.
ICondition : IPersistStream
De ICondition interface is één knooppunt in een voorwaardestructuur. Het knooppunt kan een negatieknooppunt, AND-knooppunt, OF-knooppunt of een leaf-knooppunt zijn. Voor een niet-bladknooppunt ICondition::GetSubConditions een opsomming van de substructuren retourneert. Voor een leaf-knooppunt retourneren de volgende methoden van ICondition de volgende waarden:
- GetComparisonInfo retourneert de naam, bewerking en waarde van de eigenschap.
- GetValueType- retourneert het semantische type van de waarde, die is opgegeven in de parameter pszValueType van IConditionFactory::MakeLeaf.
- GetValueNormalization retourneert een tekenreeksvorm van de waarde. (Als de waarde al een tekenreeks was, wordt dit formulier genormaliseerd met betrekking tot hoofdletters, accenten enzovoort.)
- GetInputTerms retourneert informatie over welke delen van de invoerzin de eigenschapsnaam, de bewerking en de waarde hebben gegenereerd.
- Clone retourneert een diepe kopie van een voorwaarde-boom.
IRichChunk
Elk IRichChunk object identificeert een tokenspanne en een tekenreeks. IRichChunk is een nutsinterface die informatie vertegenwoordigt over een span (meestal een reeks tokens) die wordt geïdentificeerd door een beginpositie en lengte. Deze informatie bevat een string en/of een VARIANT.
IConditionGenerator
De IConditionGenerator interface wordt geleverd door de toepassing voor het afhandelen van herkennings- en voorwaardestructuurgeneratie voor een benoemd entiteitstype. Een voorwaardegenerator wordt gegeven aan een IQueryParser- via IQueryParser::SetMultiOption-. IQueryParser roept IConditionGenerator::Initialiseer met een ISchemaProvider voor het momenteel geladen schema. Hierdoor kan IConditionGenerator schemagegevens verkrijgen die vereist zijn. Bij het parseren van een invoertekenreeks roept IQueryParser de IConditionGenerator::RecognizeNamedEntities methode aan van elke IConditionGenerator, zodat de benoemde entiteiten die het herkent in de invoertekenreeks kunnen worden gerapporteerd. IQueryParser- kan gebruikmaken van de huidige landinstelling en zou gebruik moeten maken van de tokenisatie van de invoer, omdat het het bereik van tokens van benoemde entiteiten moet rapporteren.
Wanneer IQueryParser op het punt staat een leaf-knooppunt te verzenden en het semantische type van de waarde overeenkomt met het benoemde entiteitstype voor een IConditionGenerator, roept IQueryParserIConditionGenerator::GenerateforLeaf aan met de informatie voor het knooppunt dat moet worden gegenereerd. Als de IConditionGenerator S_OK retourneert, moet deze een voorwaardestructuur (die geen leaf-knooppunt hoeft te zijn) retourneren en IQueryParser informeren of de alternatieve tekenreeksinterpretatie moet worden onderdrukt die normaal gesproken als voorzorgsmaatregel zou worden gegenereerd.
ITokenCollection
De methode ITokenCollection::NumberOfTokens retourneert het aantal tokens.ITokenCollection::GetToken retourneert informatie over het i-token. Het begin en de lengte zijn tekenposities in de invoertekenreeks. De geretourneerde tekst is alleen niet null als er een tekst is die de tekens uit de invoertekenreeks overschrijft. Dit wordt bijvoorbeeld gebruikt om een streepje in de invoertekenreeks te overschrijven met NIET wanneer dat streepje zich in een context bevindt waarin het moet worden geïnterpreteerd als een negatie.
INamedEntityCollector
IConditionGenerator roept INamedEntityCollector::Voeg toe voor elke benoemde entiteit die wordt herkend. De spanen zijn tokenspanten. Het moet altijd zo zijn dat beginSpan? beginActual<endActual? endSpan. beginSpan en endSpan kan afwijken van beginActual en endActual als de benoemde entiteit begint en/of eindigt met semantisch onbelangrijke tokens, zoals aanhalingstekens (die niettemin worden gedekt door de benoemde entiteit). De waarde moet worden uitgedrukt als een tekenreeks en wordt vervolgens weergegeven in een aanroep naar IConditionGenerator::GenerateForLeaf.
ISchemaProvider
De ISchemaProvider interface kan worden gebruikt om door een geladen schema te bladeren voor entiteiten (typen) en relaties (eigenschappen). Dit is wat zijn individuele methoden doen:
- Entiteiten retourneert een opsomming van elke entiteit (IEntity) in het schema.
- RootEntity retourneert de hoofdentiteit van het schema. Voor een plat schema wordt het hoofdtype van iedere IQuerySolution geretourneerd.
- GetEntity- zoekt een entiteit op naam en retourneert S_FALSE als er geen dergelijke entiteit in het schema staat.
- MetaData retourneert een opsomming van IMetaData interfaces.
IEntity
De IEntity interface is een schema-entiteit die een type vertegenwoordigt dat een naam heeft, een aantal benoemde relaties heeft met andere typen (eigenschappen) en is afgeleid van een basisentiteit. Dit is wat de afzonderlijke methoden doen:
- IEntity::Relaties retourneert een opsomming van IRelationship objecten, één voor elke uitgaande relatie van dit type. Elke uitgaande relatie van een entiteit heeft een naam.
- IEntity::GetRelationship zoekt een relatie op naam en retourneert S_FALSE als er geen dergelijke relatie voor deze entiteit is.
- IEntity::MetaData retourneert een opsomming van IMetaData interfaces, één voor elk metagegevenspaar van deze entiteit.
- IEntity::DefaultPhrase retourneert een standaardzin om het genereren van een AQS- of NQS-herformulering van een voorwaardestructuur mogelijk te maken.
IRelationship
De interface IRelationship vertegenwoordigt een relatie tussen twee entiteiten: een bron en een bestemming. Dit is wat zijn individuele methoden doen:
- IRelationship::IsReal rapporteert of een relatie echt is. Als entiteit A bijvoorbeeld is afgeleid van entiteit B en een relatie met de naam R ervan overneemt, heeft A mogelijk nog steeds een eigen relatie met de naam R. De relatie tussen A en R moet echter hetzelfde doeltype hebben als dat van B, en de enige reden waarom deze bestaat, is het opslaan van metagegevens die specifiek zijn voor B. Een dergelijke relatie van B wordt gezegd niet echt te zijn.
- IRelationship::Medadata retourneert een opsomming van IMetaData interfaces, één voor elk metagegevenspaar van deze entiteit.
- IRelationship::DefaultPhrase geeft de standaardzin die moet worden gebruikt voor deze relatie in herformuleringen. Elke relatie heeft een standaardterm die deze aangeeft om het genereren van een AQS- of NQS-herformulering van een voorwaardehiërarchie mogelijk te maken.
IMetaData
Metagegevens zijn sleutel-waardeparen die elk zijn gekoppeld aan een entiteit, een relatie of het hele schema. Omdat sleutels niet noodzakelijkerwijs uniek zijn, kan een verzameling metagegevens worden beschouwd als een multi-map. IMetaData::GetData wordt aangeroepen om de sleutel en waarde voor een metatdatapaar op te halen.
Query's uitvoeren op scenario's
In de volgende scenario's wordt het gebruik van gestructureerde query-API's in Windows Search beschreven in veelvoorkomende queryscenario's, zoals het maken van een voorwaardestructuur en het uitvoeren van query's op de index.
Voorwaardeextractie en queryparsering
Wanneer een query wordt gemaakt, wordt het bereik ervan gedefinieerd door het systeem te vertellen waar moet worden gezocht. Hierdoor worden de zoekresultaten beperkt. Nadat het bereik is gedefinieerd, wordt een filter toegepast en wordt er een filterset geretourneerd. Zoekresultaten worden beperkt door een voorwaardestructuur te bouwen met leaf-knooppunten, vergelijkbaar met een grafiek. Deze voorwaarden worden vervolgens afgeleid. Een voorwaardestructuur is een Booleaanse combinatie (AND, OR, NOT) van bladvoorwaarden, die elk een eigenschap, via een bewerking, aan een waarde relateert. Bladknooppunt vertegenwoordigt een beperking van een enkele eigenschap tot een waarde door middel van enkele bewerkingen.
Voor een filterbeperking is een logische expressie vereist waarmee de beperking wordt beschreven. Het definiëren van deze expressie begint met de ICondition interface, die wordt gebruikt om één knooppunt in een voorwaardestructuur te maken. Omdat er slechts één voorwaarde in het volgende voorbeeld is, verandert de boomstructuur niet.
[
object,
uuid(0FC988D4-C935-4b97-A973-46282EA175C8),
pointer_default(unique)
]
interface ICondition : IPersistStream
{
HRESULT GetConditionType([out, retval] CONDITION_TYPE* pNodeType);
HRESULT GetSubConditions([in] REFIID riid, [out, retval, iid_is(riid)] void** ppv);
[local] HRESULT GetComparisonInfo([out, annotation("__deref_opt_out")] LPWSTR *ppszPropertyName, [out, annotation("__out_opt")] CONDITION_OPERATION *pOperation, [out, annotation("__out_opt")] PROPVARIANT *pValue);
HRESULT GetValueType([out, retval] LPWSTR* ppszValueTypeName);
HRESULT GetValueNormalization([out, retval] LPWSTR* ppszNormalization);
[local] HRESULT GetInputTerms([out, annotation("__out_opt")] IRichChunk** ppPropertyTerm, [out, annotation("__out_opt")] IRichChunk** ppOperationTerm, [out, annotation("__out_opt")] IRichChunk** ppValueTerm);
HRESULT Clone([out, retval] ICondition** ppc);
};
Als er meer dan één filtervoorwaarde is, worden AND en andere Booleaanse operatoren gebruikt om één boomstructuur te bereiken. AND-trees en OR-trees vertegenwoordigen combinaties en disjunctions van hun substructuren. Een NOT-boom vertegenwoordigt de negatie van zijn enige subboom. AQS biedt een tekstbenadering voor het bereiken van logische expressies met Booleaanse operatoren en is vaak eenvoudiger.
In het volgende voorbeeld converteren we de voorwaardestructuur (ICondition) naar een visueel formulier. De queryparser, met behulp van de IQueryParser interface, converteert de ICondition- naar een RTF-queryreeks met opmaak. De methode IQueryParser::RestateToString retourneert de querytekst, terwijl de methode IQueryParser::Parse een IQuerySolution-interface produceert. In het volgende voorbeeld ziet u hoe u dit doet.
[
object,
uuid(2EBDEE67-3505-43f8-9946-EA44ABC8E5B0),
pointer_default(unique)
]
interface IQueryParser : IUnknown
{
HRESULT Parse([in] LPCWSTR pszInputString, [in] IEnumUnknown* pCustomProperties, [out, retval] IQuerySolution** ppSolution);
HRESULT SetOption([in] STRUCTURED_QUERY_SINGLE_OPTION option, [in] PROPVARIANT const* pOptionValue);
HRESULT GetOption([in] STRUCTURED_QUERY_SINGLE_OPTION option, [out, retval] PROPVARIANT* pOptionValue);
HRESULT SetMultiOption([in] STRUCTURED_QUERY_MULTIOPTION option, [in] LPCWSTR pszOptionKey, [in] PROPVARIANT const* pOptionValue);
HRESULT GetSchemaProvider([out, retval] ISchemaProvider** ppSchemaProvider);
HRESULT RestateToString([in] ICondition* pCondition, [in] BOOL fUseEnglish, [out] LPWSTR* ppszQueryString);
HRESULT ParsePropertyValue([in] LPCWSTR pszPropertyName, [in] LPCWSTR pszInputString, [out, retval] IQuerySolution** ppSolution);
HRESULT RestatePropertyValueToString([in] ICondition* pCondition, [in] BOOL fUseEnglish, [out] LPWSTR* ppszPropertyName, [out] LPWSTR* ppszQueryString);
};
De belangrijkste invoer van IQueryParser::P arse is een gebruikersinvoertekenreeks die moet worden geparseerd, maar de toepassing kan de queryparser ook informeren over alle eigenschappen die worden herkend in de invoer (van toepassingsspecifieke syntaxis). De uitvoer van IQueryParser::Parse is een IQuerySolution, die alle informatie over die parse-aanroep biedt. Er zijn methoden voor het verkrijgen van de invoertekenreeks, hoe de invoertekenreeks is getokeniseerd, eventuele parseringsfouten en de geparseerde query als voorwaardestructuur, vertegenwoordigd door een ICondition-. In het volgende voorbeeld ziet u ...
[
object,
uuid(D6EBC66B-8921-4193-AFDD-A1789FB7FF57),
pointer_default(unique)
]
interface IQuerySolution : IConditionFactory
{
[local] HRESULT GetQuery([out, annotation("__out_opt")] ICondition** ppQueryNode, [out, annotation("__out_opt")] IEntity** ppMainType);
HRESULT GetErrors([in] REFIID riid, [out, retval, iid_is(riid)] void** ppParseErrors);
[local] HRESULT GetLexicalData([out, annotation("__deref_opt_out")] LPWSTR* ppszInputString, [out, annotation("__out_opt")] ITokenCollection** ppTokens, [out, annotation("__out_opt")] LCID* pLocale, [out, annotation("__out_opt")] IUnknown** ppWordBreaker);
}
In het vorige voorbeeld kon IQuerySolution::GetQuery alle informatie over de query verkrijgen, inclusief de oorspronkelijke tekst, tokens die de tekst of de voorwaardestructuur vormen. Voorbeelden van mogelijke geretourneerde querywaarden worden vermeld in de volgende tabel.
| Voorbeelden van geretourneerde querywaarden | Beschrijving |
|---|---|
author:relja OR author:tyler |
De querytekst die IQueryParser::RestateToString retourneert |
?author?, ?:?, ?relja?, ?OR?, ?author?, ?:?, ?tyler? |
Het opsplitsen van tokens |
|
Een niet-opgeloste voorwaardestructuur |
De initiële voorwaardestructuur die wordt geretourneerd, is niet opgelost. In een niet-opgeloste voorwaardestructuur worden datum- en tijdverwijzingen, zoals date:yesterday, niet geconverteerd naar absolute tijd. Virtuele eigenschappen worden ook niet uitgebreid. Virtuele eigenschappen zijn eigenschappen die fungeren als aggregaties van meerdere eigenschappen.
De query kind:email from:reljai levert bijvoorbeeld de volgende niet-opgeloste en opgeloste conditiestructuren op. De niet-opgeloste voorwaardestructuur bevindt zich aan de linkerkant en de opgeloste voorwaardestructuur bevindt zich rechts.
De opgeloste structuur kan worden verkregen door IConditionFactory::Resolveaan te roepen. Het doorgeven van SQRO_DONT_RESOLVE_DATETIME laat de datum en tijd echter onopgeloste. Er zijn voordelen voor een niet-opgeloste voorwaardestructuur, omdat een niet-opgeloste voorwaardestructuur informatie over de query bevat. Elk leaf-knooppunt verwijst naar de tokens die worden geretourneerd door IQuerySolution::GetLexicalData, die overeenkomen met de eigenschap, operator en waarde bij het gebruik van de IRichChunk interface. In het volgende voorbeeld ziet u ...
interface ITokenCollection : IUnknown
{
HRESULT NumberOfTokens(ULONG* pCount);
HRESULT GetToken([in] ULONG i, [out, annotation("__out_opt")] ULONG* pBegin, [out, annotation("__out_opt")] ULONG* pLength, [out, annotation("__deref_opt_out")] LPWSTR* ppsz);
};
ICondition:: GetInputTerms([out, annotation("__out_opt")]
IRichChunk** ppPropertyTerm, [out, annotation("__out_opt")]
IRichChunk** ppOperationTerm, [out, annotation("__out_opt")]
IRichChunk** ppValueTerm);
interface IRichChunk : IUnknown
{
HRESULT GetData([out, annotation("__out_opt")] ULONG* pFirstPos, [out, annotation("__out_opt")] ULONG* pLength, [out, annotation("__deref_opt_out")] LPWSTR* ppsz, [out, annotation("__out_opt")] PROPVARIANT* pValue);
}
Query's uitvoeren op de index
Er zijn verschillende benaderingen voor het uitvoeren van query's op de index. Sommige zijn gebaseerd op de SQL en andere zijn gebaseerd op AQS. U kunt ook programmatisch een query uitvoeren op de Windows Search-index met behulp van query's uitvoeren op interfaces. Er zijn drie interfaces die specifiek zijn voor het uitvoeren van query's op de index: ISearchQueryHelper, IRowsetPrioritizationen IRowsetEvents. Zie voor conceptuele informatie Index opvragen middels programma's.
U kunt een onderdeel of helperklasse ontwikkelen om een query uit te voeren op de index met behulp van de interface ISearchQueryHelper. Deze interface wordt geïmplementeerd als helperklasse voor ISearchCatalogManager (en ISearchCatalogManager2) en wordt verkregen door ISearchCatalogManager::GetQueryHelperaan te roepen. Zie Query's uitvoeren op de index met ISearchQueryHelpervoor conceptuele informatie.
ISearchQueryHelper staat u toe om:
- Haal een OLE DB-verbindingsreeks op om verbinding te maken met de Windows Search-database.
- AQS-gebruikersquery's omzetten naar Windows Search SQL.
- Geef querybeperkingen op die kunnen worden uitgedrukt in SQL, maar niet in AQS.
Het indexeren van prioriteits- en rijset-gebeurtenissen wordt ondersteund in Windows 7 en hoger. Met IRowsetPrioritization is er een prioriteitsstack waarmee de client kan aanvragen dat de bereiken die in een bepaalde query worden gebruikt, een hogere prioriteit krijgen dan de normale prioriteit. IRowsetEvents geeft een melding van wijzigingen in items in rijensets, waaronder het toevoegen van nieuwe items, het verwijderen van items en het wijzigen van itemgegevens. Door gebruik te maken van meldingen voor rijset-gebeurtenissen, zorgt u ervoor dat de resultaten voor bestaande query's zo up-to-date mogelijk zijn. Zie Indexering Prioritization and Rowset Events in Windows 7voor conceptuele informatie.
Verwante onderwerpen