A katalóguskezelő használata

Az ISearchCatalogManager és ISearchCatalogManager2 felületek olyan módszereket biztosítanak a keresési katalógusok kezeléséhez, mint például az újraindexelés vagy az időtúllépések beállítása. Bár a Windows Search jelenleg csak egy katalógust használ, ez a felület úgy lett kialakítva, hogy nagyobb vezérlést biztosítson több katalógus egymástól függetlenül történő kezeléséhez. A felület a következő módokon kezeli a katalógust:

  • Hozzáférés más felületekhez – a bejárási hatókör-kezelő által igényelt egyéb kereséssel kapcsolatos felületek lekérése, az adatmódosítási értesítések és a ISearchQueryHelper felület.
  • Katalógus tartalma – annak biztosítása, hogy az új adatok indexelve legyenek, és hogy más alkalmazások és összetevők megfelelően működjön a katalógus egészének vagy egy részének újraindexelésével vagy a teljes katalógus alaphelyzetbe állításával.
  • Katalógustulajdonságok – olyan tulajdonságok beállítása, amelyek meghatározzák, hogy a katalógus hogyan kezeli az időtúllépéseket a protokollkezelőkhöz való csatlakozáskor, és hogyan kezeli a diakritikus jeleket a keresésekben.
  • Katalógus állapota – a katalógussal kapcsolatos információk lekérése, beleértve az állapotot, a méretet és az aktuális tevékenység állapotát.

Ez a témakör a következőképpen van rendszerezve:

A Windows Search platform néhány hasznos felületének használatához a Catalog Manager egy példánya szükséges. Ha katalóguskezelőt szeretne létrehozni egy adott katalógushoz, hívja meg az ISearchManager::GetCatalog metódust. A Catalog Manager metódusai ezután a megadott katalóguson alapuló interfészek példányosítására és visszaadására használhatók.

Módszer Leírás
GetQueryHelper Lekéri a ISearchQueryHelper felületének egy példányát az aktuális katalógushoz, így könnyen létrehozhat lekérdezéseket.
GetCrawlScopeManager Lekéri a keresési katalógushoz tartozó ISearchCrawlScopeManager egy példányát, hogy a fejlesztők módosíthassák a Windows Search Indexer bejárási hatókörét.
GetItemsChangedSink Lekéri az ISearchItemsChangedSink felület egy példányát, amellyel az ügyfélalkalmazások értesítik az indexelőt a változásokról, ha az ügyfél az elem indexelési állapotadatait szeretné támogatni a szolgáltató által felügyelt értesítések támogatásához. További információt A változások indexének értesítése című témakörben talál.
GetPersistentItemsChangedSink Lekéri az ISearchPersistentItemsChangedSinkegy példányát, amellyel az ügyfélalkalmazások értesítik az indexelőt a változásokról, ha az ügyfél nem szeretne indexelési állapotinformációkat (indexelő által felügyelt értesítéseket). További információt A változások indexének értesítése című témakörben talál.

A katalógus tartalmának kezelése

A katalógus kezelésének két elsődleges feladata van: az indexelő bejárási hatókörében lévő url-címek vagy url-címek újraindexelése, valamint a teljes mögöttes katalógus alaphelyzetbe állítása. Az URL-címek újraindexelésekor a régi adatok mindaddig a katalógusban maradnak, amíg új adatok nem cserélik le azokat. A katalógus alaphelyzetbe állításakor a teljes katalógus újraépül, és a bejárási hatókör összes URL-címe újra indexelve lesz. Ez a folyamat sok időt vehet igénybe, és csak végső megoldásként használható olyan problémák megoldásához, mint például egy esetleg sérült index.

Új alkalmazás, protokollkezelő vagy szűrő telepítésekor a telepítő alkalmazásnak hozzá kell adnia annak könyvtárát vagy gyökerét a bejárási hatókörhöz, hogy az indexelő tartalmazza az alkalmazás adatainak helyét. Ha az adatok nem jelennek meg a katalógusban, miután az indexelő bejárta a bejárási hatókörét, először győződjön meg arról, hogy az adatok helye szerepel a bejárási hatókörben. Felveheti a Windows Keresési beállítások felhasználói felületével, vagy a Bejárási hatókörkezelősegítségével. Ha úgy tűnik, hogy a hely a bejárási hatókörben van, manuálisan kényszerítheti az indexelő bejárási hatókörében vagy egy részhalmazában lévő összes URL újraindexelését az ISearchCatalogManager felületének alábbi módszereivel.

Újraindexelési módszer Leírás
ISearchCatalogManager::Reindex Újraindexeli a katalógus összes URL-címét. A régi információk mindaddig megmaradnak, amíg új információk nem cserélik le.
ISearchCatalogManager::ReindexMatchingURLs
ISearchCatalogManager::ReindexSearchRoot
Újraindexeli a mintának megfelelő VAGY egy adott gyökérnél kezdődő URL-címeket (például file:///C:\Foldername\Subfoldername\). Ez akkor hasznos, ha egy adott könyvtárban vagy egy adott kiterjesztéssel mindent újratelepít, akárcsak egy alkalmazás telepítésekor.
HasonlóURL-ekPriorizálása Arra utasítja az indexelőt, hogy rangsorolja az indexelő elemeket az olyan URL-címekkel, amelyek megfelelnek a megadott mintának más indexelési feladatok elvégzése során.

Állítsa alaphelyzetbe az indexet. A teljes indexet alaphelyzetbe állíthatja az ISearchCatalogManager::Reset meghívásával. Ez alaphelyzetbe állítja a mögöttes katalógust az adatbázisok újraépítésével és a bejárási hatókörben lévő összes URL teljes indexének végrehajtásával. Ez a folyamat sok időt vehet igénybe, és csak végső megoldásként használható olyan problémák megoldásához, mint például egy esetleg sérült index.

Fontos

Az indexelés lelassulása miatt, amelyet ezek a módszerek okozhatnak, gondosan kell használni őket, amikor indexelési vagy katalógusproblémákat próbál azonosítani. Először ellenőrizze, hogy a keresési gyökerek és hatókörszabályok hozzá vannak adva a Keresési Hatókör Kezelőhöz, majd győződjön meg arról, hogy a FANCI bit (Nem tartalomindexelt fájlattribútum) megfelelően be van állítva a fájlokhoz és mappákhoz. Ha meggyőződött arról, hogy ezek helyesek, először próbálja meg a ReindexSearchRoot parancsot, majd az utolsó újraindexelést. Ha egyik sem működik, próbálja meg végső megoldásként az Alaphelyzetbe állítást.

További információért lásd: A változások indexének értesítése, és Az index lekérdezése az ISearchQueryHelper segítségével

Katalógus állapotának kezelése

A Katalóguskezelő segítségével lekérheti a katalógus állapotát azokhoz az alkalmazásokhoz, amelyek testre szeretnék szabni a katalógus kezelését (például egy egyéni "Katalógus állapota" monitorozási alkalmazást). A katalóguskezelőre azonban általában nincs szükség a legtöbb kereséssel kapcsolatos fejlesztési forgatókönyv esetében. Gyakori felhasználási módja egy "Katalógus állapota" monitorozási alkalmazásnak vagy egy Vezérlőpult-stílusú alkalmazásnak.

Az alábbi táblázat a katalógus állapotának kezelésére használt ISearchCatalogManager metódusait ismerteti.

Módszer Leírás
URLBeingIndexed Lekéri az indexelt URL-címet. Ez a módszer akkor hasznos, ha azt szeretné megállapítani, hogy az indexelő "elakadt" -e egy elemen.
Tételszáma Lekéri a katalógus elemeinek számát.
Indexelendő elemek száma Az indexelendő elemekre vonatkozó alábbi információkat kéri le:
  • plIncrementalCount – az indexelendő elemek száma a következő növekményes indexben
  • plNotificationQueue – az értesítési üzenetsor elemeinek száma. Ez az információ hasznos lehet egy olyan értesítési alkalmazás számára, amely ellenőrizni szeretné, hogy az indexelő megkapja-e az alkalmazás által küldött értesítéseket.
  • plHighPriorityQueue – a magas prioritású üzenetsor elemeinek száma. A plHighPriorityQueue elemeit a rendszer először indexeli.
KatalógusStátuszLekérése Lekéri a katalógus állapotát, és egy enumerálási értéket ad vissza, amely az aktuális állapotot adja vissza. A katalógus következő lehetséges állapotai:
  • Nincs szükség indexelésre: a rendszer tétlen.
  • Szüneteltetve: Az indexelés szüneteltetve van (például alacsony akkumulátor- vagy magas processzorhasználat miatt).
  • Helyreállítás: Az indexelés helyreáll.
  • Teljes bejárás: Az Indexelő a bejárási hatókör teljes bejárását végzi.
  • Növekményes bejárás: Az indexelő növekményes bejárást végez.
  • Értesítések feldolgozása: Az Indexelő az értesítéseket dolgozza fel.
  • Leállítás: Az Indexelő leáll.
get_Name Lekéri a ISearchManager::GetCatalog metódusban megadott aktuális katalógus nevét. Jelenleg az egyetlen támogatott katalógus a SystemIndex.

Katalógustulajdonságok kezelése

A Catalog Managerrel három katalógustulajdonság kezelhető:

  • Diakritikus érzékenység. A mellékjelek a betűkhöz hozzáadott jelölőjelek, amelyek egy szó jelentését vagy kiejtését jelölik. Ez a tulajdonság határozza meg, hogy a katalógus érzékeny-e az ékezetekre, és fontos, ha Ön vagy a felhasználók több nyelven keresnek és indexelnek szöveget. Ha például ez a tulajdonság HAMIS értékre van állítva, a katalógus az "önéletrajz" és az "önéletrajz" kifejezést úgy kezeli, mintha ugyanaz a szó lenne.
  • Kapcsolati időkorlátok. Ez a tulajdonság azt az időtartamot jelöli, ameddig várni kell egy kiszolgáló vagy adattár kapcsolati válaszára, ahogyan az egy TIMEOUT_INFO struktúrában látható. Ezzel a tulajdonsággal finomhangolhatja a Windows Search szolgáltatást.
  • Adat időtúllépései Ez a tulajdonság azt az időtartamot jelöli, amíg az indexelő és egy protokollkezelő vagy -szűrő közötti adattranzakcióra várni kell, ahogyan az egy TIMEOUT_INFO struktúrában látható. Ha ez az idő eltelt, a szűrődémonból származó folyamat leáll, hogy megelőzze a holtpontot és más erőforrásproblémákat.

Az utolsó két tulajdonság elsősorban jövőbeli használatra szolgál. Mindegyik tulajdonság get és put metódusokkal rendelkezik.

Módszer Leírás
get_DiacriticSensitivity /
put_DiacriticSensitivity
IGAZ, ha a katalógusnak megkülönböztetnie kell a szavakat a mellékjelekkel. HAMIS, ha a katalógusnak figyelmen kívül kell hagynia az ékjeleket. A tulajdonság módosításához újra kell építeni az indexet, mert előfordulhat, hogy az index kulcsai érvénytelenek lesznek.
get_ConnectTimeout /
put_ConnectTimeout
Az az idő másodpercben, amikor az indexelőnek várnia kell egy kiszolgáló vagy adattár kapcsolati válaszára. A túl magas beállítás késést okozhat, ha sok webhely nem válaszol. Ha túl alacsonyra állítja, bizonyos webhelyek nem lesznek bejárva.
get_DataTimeout /
put_DataTimeout
Az az idő másodpercben, amikor az indexelőnek várnia kell egy adattranzakcióra.

Futtatás emelt szintű módban

A SystemIndexet frissítő metódushívásokhoz az alkalmazás futtatásához emelt szintű jogosultságokra van szükség. Ellenkező esetben az alkalmazás a hozzáférés megtagadása hibával fog meghiúsulni.

Index kezelése

Index- kezelésére szolgáló felületek

A keresési menedzser használata

A bejárási hatókörkezelő használata