Korzystanie z menedżera wykazu

Interfejsy ISearchCatalogManager i ISearchCatalogManager2 zapewniają metody zarządzania katalogiem wyszukiwania, takie jak spowodowanie ponownego indeksowania lub ustawienie limitów czasowych. Chociaż usługa Windows Search obecnie używa tylko jednego wykazu, ten interfejs został zaprojektowany tak, aby zapewnić większą kontrolę nad zarządzaniem wieloma wykazami niezależnie. Interfejs zarządza wykazem w następujący sposób:

  • Dostęp do innych interfejsów — pobieranie dodatkowych interfejsów związanych z wyszukiwaniem, których wymaga Menedżer zakresu przeszukiwania, powiadomienia o zmianie danych i interfejs ISearchQueryHelper.
  • Zawartość wykazu — zapewnienie, że nowe dane są indeksowane i że inne aplikacje i składniki działają prawidłowo, wymuszając ponowne indeksowanie wszystkich lub części wykazu lub przez zresetowanie całego wykazu.
  • Właściwości wykazu — ustawienie właściwości, które określają zarządzanie limitami czasu przez katalog podczas nawiązywania połączenia z obsługującymi protokoły oraz sposób traktowania znaków diakrytycznych w wyszukiwaniu.
  • Stan wykazu — uzyskiwanie informacji o wykazie, w tym o stanie, rozmiarze i bieżącym stanie działania.

Ten temat jest zorganizowany w następujący sposób:

Niektóre przydatne interfejsy na platformie Windows Search wymagają instancji Menedżera katalogu, zanim będzie można ich używać. Aby utworzyć Menedżera wykazu dla określonego wykazu, wywołaj metodę ISearchManager::GetCatalog. Metody Menedżera Katalogu mogą następnie służyć do instancjonowania i zwracania interfejsów opartych na określonym katalogu.

Metoda Opis
UzyskajPomocZZapytania Pobiera wystąpienie interfejsu ISearchQueryHelper dla bieżącego katalogu, co umożliwia łatwe tworzenie zapytań.
GetCrawlScopeManager Pobiera wystąpienie ISearchCrawlScopeManager dla tego katalogu wyszukiwania, aby umożliwić deweloperom modyfikowanie zakresu przeszukiwania indeksatora wyszukiwania systemu Windows.
GetItemsChangedSink Pobiera wystąpienie interfejsu ISearchItemsChangedSink, którego aplikacje klienckie używają do powiadamiania indeksatora o zmianach, gdy klient chce otrzymać informacje o stanie indeksowania elementu w celu wspierania powiadomień zarządzanych przez dostawcę. Dalsze informacje znajdziesz w sekcji Powiadamianie o indeksie zmian.
GetPersistentItemsChangedSink Pobiera wystąpienie ISearchPersistentItemsChangedSink, którego aplikacje klienckie używają do powiadamiania indeksatora o zmianach, gdy klient nie potrzebuje informacji o stanie indeksowania (powiadomienia zarządzane przez indeksator). Dalsze informacje znajdziesz w sekcji Powiadamianie o indeksie zmian.

Zarządzanie zawartością wykazu

Istnieją dwa podstawowe zadania związane z zarządzaniem wykazem: ponowne indeksowanie wszystkich lub niektórych adresów URL w zakresie przeszukiwania indeksatora i resetowanie całego katalogu bazowego. W przypadku ponownego indeksowania adresów URL stare dane pozostają w wykazie do czasu lub o ile nie zostaną zastąpione przez nowe dane. Po zresetowaniu wykazu cały wykaz zostanie ponownie skompilowany, a wszystkie adresy URL w zakresie przeszukiwania zostaną ponownie zindeksowane. Ten proces może zająć dużo czasu i powinien być używany tylko jako ostateczność rozwiązywania problemów, takich jak prawdopodobnie uszkodzony indeks.

Podczas instalowania nowej aplikacji, procedury obsługi protokołu lub filtru aplikacja instalatora powinna dodać katalog lub katalog główny do zakresu przeszukiwania, aby upewnić się, że indeksator zawiera lokalizację danych tej aplikacji. Jeśli dane nie są wyświetlane w wykazie po przeszukaniu zakresu przeszukiwania indeksatora, należy najpierw upewnić się, że lokalizacja danych znajduje się w zakresie przeszukiwania. Można go dodać przy użyciu interfejsu użytkownika opcji wyszukiwania systemu Windows lub menedżera zakresu przeszukiwania . Jeśli lokalizacja wydaje się znajdować w zakresie przeszukiwania, możesz ręcznie wymusić ponowne indeksowanie wszystkich adresów URL w zakresie przeszukiwania indeksatora lub podzestawu, używając następujących metod interfejsu ISearchCatalogManager.

Metoda ponownego indeksowania Opis
ISearchCatalogManager::Reindex Ponownie indeksuje wszystkie adresy URL w wykazie. Stare informacje pozostaną do czasu ich zastąpienia przez nowe informacje.
ISearchCatalogManager::ReindexMatchingURLs
ISearchCatalogManager::ReindexSearchRoot
Ponownie indeksuje adresy URL zgodne ze wzorcem lub zaczynające się od określonego katalogu głównego (na przykład "file:///C:\Nazwa folderu\Nazwa podfolderu\"). Jest to przydatne w przypadku ponownego przeszukiwania wszystkiego w określonym katalogu lub przy użyciu określonego rozszerzenia, gdy aplikacja jest instalowana.
określanie priorytetówMatchingURLs Nakazuje indeksatorowi, aby nadał priorytet indeksowaniu elementów z adresami URL, które pasują do określonego wzorca, przed zakończeniem innych zadań indeksowania.

Resetowanie indeksu. Cały indeks można zresetować za pomocą wywołania metody ISearchCatalogManager::Reset. Spowoduje to zresetowanie katalogu bazowego przez ponowne skompilowanie baz danych i wykonanie pełnego indeksu wszystkich adresów URL w zakresie przeszukiwania. Ten proces może zająć dużo czasu i powinien być używany tylko jako ostateczność rozwiązywania problemów, takich jak prawdopodobnie uszkodzony indeks.

Ważny

Ze względu na spowolnienie indeksowania, które mogą powodować te metody, należy ich ostrożnie używać podczas próby zidentyfikowania problemów z indeksowaniem lub wykazem. Najpierw upewnij się, że korzenie wyszukiwania i reguły zakresu zostały dodane do Menedżera zakresu przeszukiwania, a następnie upewnij się, że bit FANCI (atrybut pliku „nie indeksowany zawartości”) jest poprawnie ustawiony dla plików i folderów. Jeśli potwierdzisz, że są one poprawne, spróbuj najpierw ReindexSearchRoot, a na końcu Reindex. Jeśli żadna z tych czynności nie działa, spróbuj zresetować w ostateczności.

Aby uzyskać powiązane informacje, zobacz Powiadamianie o zmianach w indeksiei Wykonywanie zapytań do indeksu za pomocą ISearchQueryHelper.

Zarządzanie stanem katalogu

Menedżer wykazu może służyć do pobierania stanu wykazu dla aplikacji, które chcą dostosować sposób zarządzania wykazem (na przykład niestandardową aplikację monitorowania "Stan wykazu"). Menedżer wykazu nie jest jednak zwykle wymagany w przypadku większości scenariuszy programowania związanych z wyszukiwaniem. Typowe zastosowania to aplikacja monitorowania "Stan wykazu" lub aplikacja w stylu Panelu sterowania.

W poniższej tabeli opisano metody ISearchCatalogManager używane do zarządzania stanem wykazu.

Metoda Opis
URLBeingIndexed Pobiera adres URL, który jest obecnie indeksowany. Ta metoda byłaby przydatna, jeśli próbujesz określić, czy indeksator był "zablokowany" w elemencie.
LiczbaElementów Pobiera liczbę elementów w katalogu.
LiczbaElementówDoIndeksowania Pobiera następujące informacje o elementach do indeksowania:
  • plIncrementalCount — liczba elementów do indeksowania w następnym indeksie przyrostowym
  • plNotificationQueue — liczba elementów w kolejce powiadomień. Te informacje przydają się aplikacji powiadomień, która musi sprawdzić, czy indeksator odbiera powiadomienia wysyłane przez aplikację.
  • plHighPriorityQueue — liczba elementów w kolejce o wysokim priorytcie. Elementy w plHighPriorityQueue są najpierw indeksowane.
GetCatalogStatus Pobiera stan wykazu i zwraca wartość wyliczenia, która daje bieżący stan. Poniżej przedstawiono możliwe stany katalogu:
  • Bezczynność: nie jest wymagane indeksowanie.
  • Wstrzymano: indeksowanie jest wstrzymane (na przykład z powodu niskiego użycia baterii lub wysokiego użycia procesora CPU).
  • Odzyskiwanie: indeksowanie jest przywracane.
  • Przeszukiwanie pełne: indeksator wykonuje pełne przeszukiwanie zakresu przeszukiwania.
  • Przeszukiwanie przyrostowe: indeksator wykonuje przeszukiwanie przyrostowe.
  • Przetwarzanie powiadomień: Indeksator przetwarza powiadomienia.
  • Zamykanie: indeksator jest zamykany.
get_Name Pobiera nazwę bieżącego wykazu określonego w metodzie ISearchManager::GetCatalog. Obecnie jedynym obsługiwanym wykazem jest SystemIndex.

Zarządzanie właściwościami wykazu

Istnieją trzy właściwości wykazu, którymi można zarządzać za pomocą Menedżera wykazu:

  • Wrażliwość diakrytyczna. Znaki diakrytyczne są znakami wyróżniającymi dodanymi do liter, aby oznaczać znaczenie lub wymowę słowa. Ta właściwość określa, czy katalog jest wrażliwy na znaki diakrytyczne i jest ważny podczas wyszukiwania i indeksowania tekstu przez użytkowników w wielu językach. Na przykład jeśli ta właściwość ma wartość FALSE, katalog będzie traktować ciąg "resume" i "résumé", tak jakby był tym samym słowem.
  • Przekroczenia limitu czasu połączenia. Ta właściwość reprezentuje czas oczekiwania na odpowiedź połączenia z serwera lub magazynu danych, jak pokazano w strukturze TIMEOUT_INFO. Za pomocą tej właściwości można dostosować usługę Windows Search.
  • Timeouty danych Ta właściwość reprezentuje czas oczekiwania na transakcję danych między indeksatorem a programem obsługi protokołu lub filtrem, w strukturze reprezentowanej przez TIMEOUT_INFO. Jeśli ten czas upłynie, proces z demona filtra zostanie zakończony, aby zapobiec zakleszczeniu i innym problemom z zasobami.

Dwie ostatnie właściwości są przeznaczone głównie do użytku w przyszłości. Każda z tych właściwości ma metody get i put.

Metoda Opis
get_DiacriticSensitivity /
zmień_wrażliwośćNaZnakiDiakrytyczne
PRAWDA, jeśli katalog powinien rozróżniać wyrazy z znakami diakrytycznymi. FALSE, jeśli katalog powinien ignorować znaki diakrytyczne. Zmiana tej właściwości wymaga ponownego skompilowania indeksu, ponieważ klucze indeksu mogą stać się nieprawidłowe.
get_ConnectTimeout /
put_ConnectTimeout
Czas oczekiwania indeksatora na odpowiedź połączenia z serwera lub magazynu danych w sekundach. Ustawienie tego zbyt wysokiego poziomu może spowodować opóźnienia, jeśli wiele witryn nie odpowiada. Ustawienie zbyt małej wartości może spowodować, że niektóre witryny nie są przeszukiwane.
get_DataTimeout /
put_DataTimeout
Czas w sekundach, przez który indeksator powinien czekać na transakcję danych.

Uruchamianie w trybie podwyższonego poziomu uprawnień

Wszystkie wywołania metod, które aktualizują indeks SystemIndex, wymagają uruchomienia aplikacji z podwyższonym poziomem uprawnień. W przeciwnym razie aplikacja zakończy się niepowodzeniem z powodu błędu Odmowy dostępu.

Zarządzanie indeksu

interfejsy do zarządzania indeksu

Używanie Menedżera wyszukiwania

korzystanie z menedżera zakresu przeszukiwania