Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
Ez a témakör a következőképpen van rendszerezve:
- Lekérdezés a Windows Keresésben
-
Lekérdezési Forgatókönyvek
- Feltétel kinyerése és lekérdezés elemzése
- Index lekérdezése
- Kapcsolódó témakörök
A Lekérdezés a Windows Search szolgáltatásban
A Windows Search lekérdezése a következő négy módszeren alapul:
- Speciális lekérdezési szintaxis (AQS)
- Természetes lekérdezési szintaxis (NQS)
- Strukturált lekérdezési nyelv (SQL)
- Strukturált lekérdezési felületek
Az AQS a Windows Search által az index lekérdezésére, valamint a keresési paraméterek pontosítására és szűkítésére használt alapértelmezett lekérdezési szintaxis. Az AQS elsősorban a felhasználók számára érhető el, és a felhasználók AQS-lekérdezések készítésére használhatják, de a fejlesztők programozott lekérdezések készítésére is használhatják. A Windows 7-ben bevezették a canonical AQS-t, és programozott módon kell létrehozni az AQS-lekérdezéseket. Windows 7-es és újabb verziókban egy helyi menü opció érhető el, attól függően, hogy teljesül-e az AQS-feltétel. További információ: "Dinamikus viselkedés lekérése statikus igékhez speciális lekérdezésszintaxis használatával" című témakörben Helyi menükezelők létrehozása. Az AQS-lekérdezések bizonyos fájltípusokra, más néven fájltípusokra korlátozhatók. További információ: Fájltípusok és társítások. A vonatkozó tulajdonságokkal kapcsolatos referenciadokumentációért lásd a System.Kindés a System.KindTexthivatkozást.
Az NQS egy olyan lekérdezési szintaxis, amely lazább, mint az AQS, és hasonló az emberi nyelvhez. A Windows Search az NQS használatával lekérdezheti az indexet, ha az alapértelmezett AQS helyett az NQS van kiválasztva.
Az SQL egy szöveges nyelv, amely meghatározza a lekérdezéseket. Az SQL számos különböző adatbázis-technológiában gyakori. A Windows Search SQL-t használ, implementálja annak egy részhalmazát, és kiterjeszti a nyelv elemeinek hozzáadásával. A Windows Search SQL kibővíti a szabványos SQL-92 és SQL-99 adatbázis-lekérdezési szintaxist, hogy a szövegalapú keresések hasznosabbá tehessenek. A Windows Search SQL minden funkciója kompatibilis a Windows Search szolgáltatással Windows XP és Windows Server 2003 és újabb rendszereken. További információ a Windows Search SQL-ről a következő témákról található: Az index lekérdezése a Windows Search SQL szintaxissal, valamint A Windows Search SQL Szintaxis áttekintése.
A strukturált lekérdezési API-kat a jelen témakör későbbi részében ismertetjük. A strukturált lekérdezési API-kra vonatkozó referenciadokumentációt a Lekérdezési felületekcímű témakörben találja. Az olyan interfészek, mint ISearchQueryHelper segítenek SQL-sztringek létrehozásában bemeneti értékek készletéből. Ez a felület az AQS felhasználói lekérdezéseit Windows Search SQL-vé alakítja, és olyan lekérdezési korlátozásokat határoz meg, amelyek az SQL-ben kifejezhetők, de az AQS-ben nem. ISearchQueryHelper egy OLE DB kapcsolati sztringet is beszerez a Windows Search-adatbázishoz való csatlakozáshoz.
Helyi és távoli lekérdezések
A lekérdezéseket helyileg vagy távolról is végrehajthatja. Az alábbi példában egy helyi lekérdezés látható a FROM záradék használatával. Egy helyi lekérdezés csak a helyi SystemIndex-katalógust kérdezi le.
FROM SystemIndex
Az alábbi példában egy távoli lekérdezés jelenik meg a FROM záradék használatával. A ComputerName hozzáadása távoli lekérdezéssé alakítja át az előző példát.
FROM [<ComputerName>.]SystemIndex
Alapértelmezés szerint a Windows Search nincs telepítve a Windows XP és a Windows Server 2003 rendszerekben. Csak a Windows Search 4 (WS4) nyújt távoli lekérdezési támogatást. A Windows Desktop Search (WDS) korábbi verziói, például a 3.01-es és korábbi verziók nem támogatják a távoli lekérdezést. A Windows Intézővel lekérdezheti egy távoli számítógép helyi indexét a fájlrendszerelemekhez (a "file:" protokoll által kezelt elemekhez).
Ha távoli lekérdezéssel szeretne lekérni egy elemet, az elemnek meg kell felelnie a következő követelményeknek:
- Legyen elérhető az univerzális elnevezési konvenció (UNC) útján.
- Létezik azon a távoli számítógépen, amelyhez az ügyfél hozzáfér.
- Állítsa be a biztonsági beállításokat úgy, hogy az ügyfélnek olvasási hozzáférése legyen.
A Windows Fájlkezelő olyan funkciókkal rendelkezik az elemek megosztásához, mint a "Nyilvános" megosztás (\\Machine\Public\...) a Hálózati és megosztóközpontban, valamint a "Felhasználók" megosztás (\\Machine\Users\...) a Megosztás varázslóval megosztott elemekhez. A mappa(ok) megosztása után lekérdezheti a helyi indexet úgy, hogy megadja a távoli számítógép nevét a FROM záradékban, és egy UNC elérési utat a távoli számítógépen a SCOPE záradékban. Az alábbi példában a FROM és a SCOPE záradékot használó távoli lekérdezés látható.
SELECT System.ItemName FROM MachineName.SystemIndex WHERE SCOPE='file://MachineName/<path>'
Az itt szereplő példák az SQL-t használják.
A strukturált lekérdezési API áttekintése
A strukturált lekérdezések lehetővé teszi az információk keresését a lekérdezések logikai kombinációi alapján az egyes tulajdonságokon keresztül. Ebben a témakörben a legfontosabb strukturált lekérdezési API-k és metódusok funkcióit ismertetjük. A strukturált lekérdezési API-kra vonatkozó referenciadokumentációt a Lekérdezési felületekcímű témakörben találja.
IQueryParser
Az IQueryParser::Parse metódus elemzi a felhasználói bemeneti sztringet, és egy IQuerySolutionformájában hoz létre értelmezést. Ha a pCustomProperties paramétere nem null, akkor az IRichChunk objektumok felsorolása történik (minden felismert egyéni tulajdonsághoz egy). A többi IQueryParser metódus lehetővé teszi, hogy az alkalmazás több beállítást is beállítson, például a területi beállításokat, a sémát, a szóhatárolót és a kezelőket a különböző típusú nevesített entitásokhoz. IQueryParser::GetSchemaProvider egy ISchemaProvider felületet ad vissza a betöltött séma böngészéséhez.
IQuerySolution : IConditionFactory
Az IQuerySolution felület minden információt megad a bemeneti sztring elemzésének eredményéről. Mivel a IQuerySolution szintén egy IConditionFactory interfész, további feltételi faszerkezet csomópontok hozhatók létre. A IQuerySolution::GetQuery metódus létrehoz egy feltételfát az értelmezéshez. IQuerySolution::GetQuery a szemantikai típust is visszaadja.
IConditionFactory
IConditionFactory feltételstruktúra-csomópontokat hoz létre. Ha a egyszerűsítiIConditionFactory::MakeNot paramétere VARIANT_TRUE, akkor az eredményül kapott ICondition egyszerűbb lesz, és nem kell negációs csomópontnak lennie. Ha a pSubConditions paramétere a IConditionFactory::MakeAndOr esetben nem null, akkor annak a paraméternek ICondition objektumok felsorolásának kell lennie, és subtrészekké alakulnak át. AIConditionFactory::MakeLeaf létrehoz egy levélcsomópontot egy megadott tulajdonságnévvel, művelettel és értékkel. A pValueType paraméterben lévő sztringnek a sémából származó szemantikai típus nevét kell tartalmaznia. Ha a paraméter VARIANT_TRUE, és a tulajdonság virtuális, az eredményül kapott feltételfa általában egy dizjunkció, amely a tulajdonság meghatározott összetevőkre történő kiterjesztéséből származik. Ha nem null, akkor a pPropertyNameTerm, pOperatorTermés pValueTerm paramétereknek azonosítaniuk kell a tulajdonságot, a műveletet és az értéket jelző kifejezéseket.
ICondition : IPersistStream
Az ICondition interfész egyetlen csomópont egy feltételfában. A csomópont lehet tagadás csomópont, ÉS csomópont, VAGY csomópont, vagy levélcsomópont. Nem levélcsomópont ICondition::GetSubConditions a részfák enumerálását adja vissza. Levélcsomópont esetén az ICondition alábbi metódusai a következő értékeket adja vissza:
- GetComparisonInfo a tulajdonság nevét, műveletét és értékét adja vissza.
- GetValueType az érték szemantikai típusát adja vissza, amelyet a pszValueType paraméter határoz meg a IConditionFactory::MakeLeafmetódusban.
- GetValueNormalization az érték sztring formáját adja vissza. (Ha az érték már karakterlánc volt, ez a forma normalizálódik a kis- és nagybetűk, ékezetek és így tovább.)
- GetInputTerms a bemeneti mondat azon részeire vonatkozó információkat adja vissza, amelyek létrehozták a tulajdonság nevét, a műveletet és az értéket.
- klónozása a feltételfa mély másolatát adja vissza.
IRichChunk
Minden IRichChunk objektum azonosít egy token-tartományt és egy karakterláncot. IRichChunk egy olyan segédprogram-felület, amely egy kezdő pozíció és hossz által meghatározott span (általában tokenek spanja) adatait jeleníti meg. Ez a szakaszinformáció egy karakterláncot és/vagy egy VARIANTtartalmaz.
IConditionGenerator
Az IConditionGenerator felületet az alkalmazás biztosítja a névvel ellátott entitástípushoz tartozó felismerési és feltételfa-létrehozás kezeléséhez. A feltételgenerátor egy IQueryParser számára adódik át a IQueryParser::SetMultiOptionhasználatával. IQueryParser meghívja a IConditionGenerator::Initialize egy ISchemaProvider használatával az aktuálisan betöltött sémához. Ezzel lehetővé teszi IConditionGenerator számára a szükséges sémainformációk beszerzését. Bemeneti szöveg elemzésekor az IQueryParser meghívja az egyes IConditionGenerator::RecognizeNamedEntities metódust az IConditionGeneratorminden példányában, hogy a bemeneti szövegben felismert nevesített entitások előfordulásait jelenteni lehessen. IQueryParser használhatja az aktuális területi beállításokat, és célszerű a bemenet tokenizálását használni, mivel jelentést kell adnia a megnevezett entitások tokenek határairól.
Ha IQueryParser egy levélcsomópontot fog kibocsátani, és az érték szemantikai típusa megegyezik egy IConditionGeneratornevesített entitástípusával, IQueryParser meghívja IConditionGenerator::GenerateforLeaf a létrehozandó csomópont információival. Ha az IConditionGenerator S_OK ad vissza, akkor vissza kell adnia egy feltételfát (amelynek nem kell levélcsomópontnak lennie), és tájékoztatnia kell IQueryParser, hogy el kell-e tiltani az alternatív sztring értelmezését, amelyet általában elővigyázatosságból hoz létre.
ITokenCollection
A ITokenCollection::NumberOfTokens metódus a tokenek számát adja vissza.ITokenCollection::GetToken az i .tokenadatait adja vissza. A kezdő és a hosszúság karakterpozíciók a bemeneti sztringben. A visszaadott szöveg csak akkor lesz null értékű, ha egy szöveg felülírja a bemeneti sztring karaktereit. Ez például arra szolgál, hogy felülbírálja a bemeneti sztringben lévő kötőjelet a NOT karakterrel, ha a kötőjel olyan környezetben van, ahol negációként kell értelmezni.
INamedEntityCollector
IConditionGenerator meghívja INamedEntityCollector::Add az általa felismert minden megnevezett entitáshoz. A kiterjedések token kiterjedések. Mindig az a helyzet, hogy beginSpan? beginActual<endActual? endSpan. beginSpan és endSpan eltérhetnek beginActual és endActual, ha az elnevezett entitás szemantikailag jelentéktelen elemekkel, például idézőjelekkel kezdődik és/vagy végződik (amelyek azonban az elnevezett entitás hatálya alá tartoznak). Az értéket karakterláncként kell kifejezni, és később majd megjelenik az IConditionGenerator::GenerateForLeafhívásban.
ISchemaProvider
Az ISchemaProvider felület használható entitások (típusok) és kapcsolatok (tulajdonságok) betöltött sémáinak tallózására. Az egyes metódusok a következők:
- entitások a séma minden entitásának (IEntity) enumerálását adja vissza.
- RootEntity a séma gyökérentitását adja vissza. Egy sima séma esetén a rendszer minden IQuerySolution fő típusát adja vissza.
- GetEntity név alapján keres egy entitást, és S_FALSE ad vissza, ha nincs ilyen entitás a sémában.
- MetaDataIMetaData interfészek számbavételét adja vissza.
IEntity
Az IEntity interfész egy olyan sémaentitás, amely egy névvel rendelkező típust jelöl, számos elnevezett kapcsolatot használ más típusokkal (tulajdonságok), és egy alapentitásból származik. Az egyes metódusok a következők:
- IEntity::Relationships a IRelationship objektumainak enumerálását adja vissza, egyet az ilyen típusú kimenő kapcsolatokhoz. Egy entitás minden kimenő kapcsolata rendelkezik névvel.
- IEntity::GetRelationship név alapján keres kapcsolatot, és S_FALSE ad vissza, ha nincs ilyen kapcsolat ehhez az entitáshoz.
- IEntity::MetaDataIMetaData interfészek enumerálását adja vissza, az entitás minden metaadatpárja esetében.
- IEntity::DefaultPhrase egy alapértelmezett kifejezést ad vissza, amely megkönnyíti a feltételfa AQS- vagy NQS-szerinti újrafogalmazását.
IRelationship
Az IRelationship interfész két entitás, egy forrás és egy cél közötti kapcsolatot jelöl. Az egyes metódusok a következők:
- IRelationship::IsReal jelenti, hogy egy kapcsolat valós-e. Ha például az A entitás a B entitásból származik, és egy R nevű kapcsolatot örököl tőle, az A még mindig rendelkezhet saját R nevű kapcsolatával. Az A és az R közötti kapcsolatnak azonban a B céltípusával azonos céltípussal kell rendelkeznie, és ennek egyetlen oka a B-re jellemző metaadatok tárolása. Egy ilyen kapcsolat A B azt mondják, hogy nem valódi.
- IRelationship::Metadata visszaad egy felsorolást az IMetaData interfészekről, egyet-egyet az entitás minden metaadatpárjához.
- IRelationship::D efaultPhrase visszaadja a kapcsolathoz használt alapértelmezett kifejezést az újrapróbálkozásokban. Minden kapcsolathoz tartozik egy alapértelmezett kifejezés, amely megkönnyíti a feltételfa AQS vagy NQS újbóli megfogalmazását.
IMetaData
A metaadatok kulcs-érték párok, amelyek mindegyike entitáshoz, kapcsolathoz vagy a teljes sémához van társítva. Mivel a kulcsok nem feltétlenül egyediek, a metaadatok gyűjteménye több térképként is felfogható. IMetaData::GetData a metatdata-pár kulcsának és értékének lekéréséhez hívjuk meg.
Lekérdezési forgatókönyvek
Az alábbi forgatókönyvek a strukturált lekérdezési API-k windowsos keresésben való használatát ismertetik olyan gyakori lekérdezési forgatókönyvekben, mint például egy feltételfa létrehozása és az index lekérdezése.
Feltétel kinyerése és lekérdezés elemzése
Amikor létrejön egy lekérdezés, a hatóköre úgy lesz definiálva, hogy közli a rendszerrel, hogy hol keressen. Ez korlátozza a keresési eredményeket. A hatókör definiálása után a rendszer egy szűrőt alkalmaz, és visszaad egy szűrőkészletet. A keresési eredményeket egy feltételfával korlátozzák, amely levélcsomópontokkal rendelkezik, hasonlóan egy gráfhoz. A rendszer ezután kinyeri ezeket a feltételeket. A feltételfa a levélfeltételek logikai kombinációja (AND, OR, NOT), amelyek mindegyike egy tulajdonságot egy műveleten keresztül egy értékhez kapcsol. A levélcsomópontok bizonyos műveleteken keresztül egyetlen tulajdonságra vonatkozó korlátozást jelentenek egy értékre.
A szűrőkorlátozáshoz a korlátozást leíró logikai kifejezés szükséges. A kifejezés definiálása az ICondition felülettel kezdődik, amellyel egyetlen csomópontot hozhat létre egy feltételfában. Mivel a következő példában csak egy feltétel szerepel, a fa nem változik.
[
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);
};
Ha egynél több szűrőfeltétel van, akkor az AND és más logikai operátorok használatával egyetlen fát érhet el. Az AND-fák és az OR-fák az al-fák konjunkcióit és diszjunkcióit jelölik. A NOT-fa az egyetlen részhalmaz negációját jelöli. Az AQS szöveges megközelítést biztosít a logikai kifejezések logikai operátorokkal való eléréséhez, és gyakran egyszerűbb.
A következő példában a feltételfát (ICondition) vizualizációs formává alakítjuk. A lekérdezéselemző az IQueryParser felületet használva konvertálja a ICondition rich text formátumú (RTF) lekérdezési sztringgé. A IQueryParser::RestateToString metódus visszaadja a lekérdezés szövegét, míg az IQueryParser::P arse metódus IQuerySolution felületet hoz létre. Az alábbi példa bemutatja, hogyan teheti mindezt.
[
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);
};
Az IQueryParser::P arse fő bemenete egy elemezni kívánt felhasználói beviteli sztring, de az alkalmazás képes tájékoztatni a lekérdezéselemzőt a bemenetben felismert tulajdonságokról (alkalmazásspecifikus szintaxisból). Az IQueryParser::Parse kimenete egy IQuerySolution, amely az adott elemzési hívással kapcsolatos minden információt biztosít. Vannak metódusok a bemeneti sztring beszerzésére, annak tokenizálásának módjára, az elemzési hibák kezelésére, valamint az elemzett lekérdezés feltételfaként való megjelenítésére, amelyet egy IConditionjelöl. Az alábbi példában ...
[
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);
}
Az előző példában IQuerySolution::GetQuery bármilyen információt beszerezhet a lekérdezésről, beleértve az eredeti szöveget, a szöveget alkotó jogkivonatokat vagy a feltételfát. A lehetséges visszaadott lekérdezési értékek példái az alábbi táblázatban találhatók.
| Példák a visszaadott lekérdezési értékekre | Leírás |
|---|---|
author:relja OR author:tyler |
Az IQueryParser::RestateToStringáltalvisszaadott lekérdezésszöveg |
?author?, ?:?, ?relja?, ?OR?, ?author?, ?:?, ?tyler? |
A tokenek lebontása |
megoldatlan feltételfa ![]() |
Megoldatlan feltétel struktúra |
A visszaadott kezdeti feltételfa megoldatlan. Egy megoldatlan feltételfában a dátum- és időhivatkozások (például date:yesterday) nem lesznek abszolút időké alakítva. Emellett a virtuális tulajdonságok nem lesznek kibontva. A virtuális tulajdonságok olyan tulajdonságok, amelyek több tulajdonság összesítéseként működnek.
A lekérdezés kind:email from:reljai például a következő megoldatlan és feloldott állapotfákat hozza létre. A megoldatlan feltételfa balra, a feloldott feltételfa pedig jobbra található.
A feloldott fa IConditionFactory::Resolvemeghívásával szerezhető be. Azonban, a SQRO_DONT_RESOLVE_DATETIME áthaladása nem oldja fel a dátumot és az időt. A megoldatlan feltételfának vannak előnyei, mivel egy megoldatlan feltételfa információkat tartalmaz a lekérdezésről. Minden levélcsomópont azokra a tokenekre hivatkozik, amelyeket a IQuerySolution::GetLexicalDataad vissza, és amelyek a tulajdonság, az operátor és az érték megfelelői az IRichChunk interfész használatakor. Az alábbi példában ...
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);
}
Az index lekérdezése
Az index lekérdezésének több módszere is van. Néhány az SQL-en alapul, míg mások az AQS-en alapulnak. A Windows Search-indexet programozott módon is lekérdezheti lekérdezési felületekhasználatával. Az index lekérdezésére három interfész jellemző: ISearchQueryHelper, IRowsetPrioritizationés IRowsetEvents. Elméleti információ: Az index programozott lekérdezése.
Az ISearchQueryHelper interfész használatával létrehozhat egy összetevő- vagy segédosztályt az index lekérdezéséhez. Ez az interfész az ISearchCatalogManager(és ISearchCatalogManager2)segédosztályaként van implementálva, és ISearchCatalogManager::GetQueryHelpermeghívásával érhető el. Elméleti információkért lásd az "Az index lekérdezése az ISearchQueryHelper segítségével" című részt .
ISearchQueryHelper lehetővé teszi, hogy:
- Szerezze be az OLE DB kapcsolati sztringet a Windows Search-adatbázishoz való csatlakozáshoz.
- AQS-felhasználói lekérdezések konvertálása Windows Search SQL-be.
- Adja meg az SQL-ben kifejezhető, de az AQS-ben nem kifejezhető lekérdezési korlátozásokat.
Az indexelési rangsorolás és a sorhalmazesemények támogatottak a Windows 7-ben és újabb verziókban. Az IRowsetPrioritization egy olyan prioritási verem, amely lehetővé teszi az ügyfél számára, hogy kérje, a lekérdezésben használt hatókörök kapjanak a normálnál magasabb prioritást. IRowsetEvents értesítést küld a sorok elemeinek változásairól, beleértve az új elemek hozzáadását, az elemek törlését és az elemadatok módosítását. A sorhalmaz eseményértesítéseinek használata biztosítja, hogy a meglévő lekérdezések eredményei a lehető legfrissebbek legyenek. Fogalmi információkért lásd Indexelési rangsorolás és sorhalmazesemények a Windows 7-ben.
Kapcsolódó témakörök
