Katalog yöneticisini kullanma

ISearchCatalogManager ve ISearchCatalogManager2 arabirimleri, arama kataloğunu yönetmek için yeniden dizin oluşturma veya zaman aşımları ayarlama gibi yöntemler sağlar. Windows Search şu anda yalnızca bir katalog kullanıyor olsa da, bu arabirim birden çok kataloğu bağımsız olarak yönetme konusunda daha fazla denetim sağlamak üzere tasarlanmıştır. Arabirim, kataloğu aşağıdaki yollarla yönetir:

  • Diğer arabirimlere erişim — Gezinme Kapsamı Yöneticisi tarafından gereken aramayla ilgili diğer arabirimleri, veri değişikliği bildirimlerini ve ISearchQueryHelper arabirimini alma.
  • Katalog içeriği: Yeni verilerin dizine eklendiğinden ve kataloğun tamamının veya bir bölümünün yeniden dizine alınmasını zorlayarak veya kataloğun tamamını sıfırlayarak diğer uygulamaların ve bileşenlerin düzgün çalıştığından emin olun.
  • Katalog özellikleri — protokol işleyicilerine bağlanırken kataloğun zaman aşımlarını nasıl yöneteceğini ve aramalarda aksan işaretlerinin nasıl ele alındığını belirleyen özellikleri ayarlar.
  • Katalog durumu — durum, boyut ve geçerli etkinlik durumu dahil olmak üzere katalog hakkında bilgi alma.

Bu konu aşağıdaki gibi düzenlenmiştir:

Windows Search platformundaki bazı kullanışlı arabirimler, kullanılmadan önce Katalog Yöneticisi örneğini gerektirir. Belirtilen bir katalog için Katalog Yöneticisi oluşturmak için ISearchManager::GetCatalog yöntemini çağırın. Katalog Yöneticisi'nin yöntemleri daha sonra belirtilen kataloğu temel alan arabirimleri örneklemek ve döndürmek için kullanılabilir.

Yöntem Açıklama
GetQueryHelper Sorguları kolayca oluşturabilmek için geçerli katalog için ISearchQueryHelper arabiriminin bir örneğini alır.
GetCrawlScopeManager Geliştiricilerin Windows Search Indexer'ın gezinme kapsamını değiştirmesini sağlamak üzere bu arama kataloğu için ISearchCrawlScopeManager bir örneğini alır.
GetItemsChangedSink ISearchItemsChangedSink arabiriminin örneğini alır. İstemci, sağlayıcı tarafından yönetilen bildirimleri desteklemek için öğe hakkındaki durum bilgilerini dizine almak istediğinde istemci uygulamalarının değişiklikleri dizin oluşturucuya bildirmek için kullandığı arabirimini alır. Daha fazla bilgi için bkz. Değişiklik Dizininin Bildirilmesi.
GetPersistentItemsChangedSink ISearchPersistentItemsChangedSink'ün bir örneğini alır; bu, istemci uygulamaların, dizin oluşturma durum bilgilerini (dizin oluşturucu tarafından yönetilen bildirimler) istemediğinde, dizin oluşturucuya değişiklikleri bildirmek için kullanacağı bir fonksiyondur. Daha fazla bilgi için bkz. Değişiklik Dizininin Bildirilmesi.

Katalog içeriğini yönetme

Kataloğu yönetmekle ilgili iki birincil görev vardır: dizin oluşturucunun gezinme kapsamındaki URL'lerin tümünü veya bir kısmını yeniden dizine alma ve temel kataloğun tamamını sıfırlama. URL'leri yeniden dizine aldığınızda, eski veriler yeni verilerle değiştirilene kadar veya değiştirilmedikçe katalogda kalır. Kataloğu sıfırladığınızda, kataloğun tamamı yeniden oluşturulur ve gezinme kapsamındaki tüm URL'ler yeniden dizine eklenir. Bu işlem çok zaman alabilir ve bozuk dizin gibi sorunları çözmek için yalnızca son çare olarak kullanılmalıdır.

Yeni bir uygulama, protokol işleyicisi veya filtre yüklediğinizde, dizin oluşturucunun uygulamanın verilerinin konumunu içerdiğinden emin olmak için kurulum uygulamasının gezinme kapsamına dizini veya kökünü eklemesi gerekir. Dizin oluşturucu gezinme kapsamına girdikten sonra veriler katalogda görünmüyorsa, önce verilerin konumunun gezinme kapsamına dahil olduğundan emin olmanız gerekir. Windows Search seçenekleri için kullanıcı arabirimini veya Gezinme Kapsamı Yöneticisikullanarak ekleyebilirsiniz. Konum gezinme kapsamında görünüyorsa, ISearchCatalogManagerarabiriminin aşağıdakiyöntemlerini kullanarak dizin oluşturucunun gezinme kapsamındaki veya alt kümesindeki tüm URL'lerin yeniden dizine alınmasına el ile zorlayabilirsiniz.

Yeniden dizin oluşturma yöntemi Açıklama
ISearchCatalogManager::Reindex Katalogdaki tüm URL'leri yeniden dizine alır. Eski bilgiler yeni bilgilerle değiştirilene kadar kalır.
ISearchCatalogManager::ReindexMatchingURLs
ISearchCatalogManager::ReindexSearchRoot
Desenle eşleşen veya belirli bir kökte başlayan URL'leri yeniden dizine alır (örneğin, file:///C:\Klasöradı\Alt KlasörAdı\). Bu, bir uygulama yüklenirken olduğu gibi belirli bir dizindeki veya belirli bir uzantıdaki her şeyi yeniden taramak için kullanışlıdır.
PrioritizeMatchingURLs Dizin oluşturucuya, diğer dizin oluşturma görevlerini tamamlamak yerine belirtilen desenle eşleşen URL'lerle dizin oluşturma öğelerinin önceliğini belirlemesini önerir.

Dizini sıfırlama. ISearchCatalogManager::Resetçağrısıyla dizinin tamamını sıfırlayabilirsiniz. Bu, veritabanlarını yeniden oluşturarak ve gezinme kapsamındaki tüm URL'lerin tam dizinini gerçekleştirerek temel kataloğu sıfırlar. Bu işlem çok zaman alabilir ve bozuk dizin gibi sorunları çözmek için yalnızca son çare olarak kullanılmalıdır.

Önemli

Dizin oluşturmada bu yöntemlerin neden olabileceği yavaşlama nedeniyle, dizin oluşturma veya katalog sorunlarını belirlemeye çalışırken dikkatli bir şekilde kullanılmalıdır. İlk olarak, arama köklerinizin ve kapsam kurallarınızın Gezinme Kapsamı Yöneticisi'ne eklendiğinden emin olun ve ardından FANCI bitinin (dosya özniteliği dizine alınmamış içerik) dosyalar ve klasörler için düzgün ayarlandığından emin olun. Bunların doğru olduğunu doğruladıysanız önce ReindexSearchRoot ve son olarak Reindex'i deneyin. Bunlardan hiçbiri işe yaramazsa, son çare olarak Sıfırla'yı deneyin.

İlgili bilgiler için bkz. Değişiklik Dizinine Bildirmeve ISearchQueryHelper ile Dizini Sorgulama

Katalog durumunu yönetme

Katalog Yöneticisi, kataloğun nasıl yönetildiğini özelleştirmek isteyen uygulamalar için kataloğun durumunu almak için kullanılabilir (örneğin, özel bir "Katalog Durumu" izleme uygulaması). Ancak Katalog Yöneticisi genellikle aramayla ilgili geliştirme senaryolarının çoğu için gerekli değildir. Yaygın kullanım alanları bir "Katalog Durumu" izleme uygulaması veya Denetim Masası stilinde bir uygulama olabilir.

Aşağıdaki tabloda katalog durumunu yönetmek için kullanılan ISearchCatalogManager yöntemleri açıklanmaktadır.

Yöntem Açıklama
URLBeingIndexed Şu anda dizine alınan URL'yi alır. Dizin oluşturucunun bir öğede "takılıp takılmadığını" belirlemeye çalışıyorsanız bu yöntem yararlı olacaktır.
NumberOfItems Katalogdaki öğe sayısını alır.
DizinlenecekÖğeSayısı Dizine alınacak öğeler hakkında aşağıdaki bilgileri alır:
  • plIncrementalCount - Sonraki artımsal dizinde dizine eklenecek öğelerin sayısı
  • plNotificationQueue - bildirim kuyruğundaki öğelerin sayısı. Bu bilgiler, dizin oluşturucunun uygulamanın gönderdiği bildirimleri alıp almadığını denetlemek için gereken bir bildirim uygulaması için yararlı olacaktır.
  • plHighPriorityQueue - yüksek öncelikli kuyruktaki öğelerin sayısı. plHighPriorityQueue içindeki öğeler önce dizine eklenir.
GetCatalogStatus Kataloğun durumunu alır ve geçerli durumu veren bir numaralandırma değeri döndürür. Olası katalog durumları şunlardır:
  • Boşta: Dizin oluşturma gerekmez.
  • Duraklatıldı: Dizin oluşturma duraklatıldı (örneğin, düşük pil veya yüksek CPU kullanımı nedeniyle).
  • Dizinleme toparlanıyor.
  • Tam gezinme: Dizin oluşturucu, gezinme kapsamının tam gezinmesini gerçekleştiriyor.
  • Artımlı gezinme: Dizin oluşturucu artımlı gezinme gerçekleştiriyor.
  • Bildirimler işleniyor: Dizin oluşturucu bildirimleri işliyor.
  • Kapatılıyor: Indexer kapatılıyor.
get_Name ISearchManager::GetCatalog yönteminde belirtilen geçerli kataloğun adını alır. Şu anda desteklenen tek katalog SystemIndex'tir.

Katalog özelliklerini yönetme

Katalog Yöneticisi ile yönetebileceğiniz üç katalog özelliği vardır:

  • Aksan duyarlılığı. Aksan işaretleri, bir sözcüğün anlamını veya söylenişini göstermek için harflere eklenen vurgu işaretleridir. Bu özellik, kataloğun aksanlara duyarlı olup olmadığını belirler ve siz veya kullanıcılarınız birden çok dilde metin arayıp dizine eklediğinizde önemlidir. Örneğin, bu özellik YANLIŞ olarak ayarlandığında, katalog "resume" ve "résumé" değerlerini aynı sözcük gibi ele alır.
  • Bağlantı zaman aşımları. Bu özellik, TIMEOUT_INFO bir yapıda gösterildiği gibi bir sunucudan veya veri deposundan bağlantı yanıtı bekleme süresini temsil eder. Windows Search'e ince ayar yapmak için bu özelliği kullanabilirsiniz.
  • Veri zaman aşımları Bu özellik, bir TIMEOUT_INFO yapısında gösterildiği gibi dizin oluşturucu ile protokol işleyicisi veya filtresi arasında veri işleminin bekleneceği süreyi temsil eder. Bu süre dolduysa, kilitlenmeyi ve diğer kaynak sorunlarını önlemek için Filtre Daemon'ından gelen işlem sonlandırılır.

Son iki özellik öncelikli olarak gelecekte kullanıma yöneliktir. Bu özelliklerin her biri get ve put yöntemlerine sahiptir.

Yöntem Açıklama
get_DiacriticSensitivity /
put_DiacriticSensitivity
Kataloğun aksanlı sözcükleri ayırt etmesi gerekiyorsa TRUE. FALSE eğer kataloğun aksanları yoksayması gerekiyorsa. Dizinin anahtarları geçersiz hale gelebileceğinden bu özelliğin değiştirilmesi için dizinin yeniden oluşturulması gerekir.
get_ConnectTimeout /
put_BağlantıZamanAşımı
Dizin oluşturucunun bir sunucudan veya veri deposundan bağlantı yanıtı beklemesi gereken saniye cinsinden süre. Bu değerin çok yüksek ayarlanması, birçok site yanıt vermiyorsa gecikmelere neden olabilir. Bu ayarın çok düşük olması bazı sitelerde gezinilmemesiyle sonuçlanabilir.
get_DataTimeout /
veri zaman aşımını ayarla
Dizin oluşturucunun bir veri işlemini beklemesi gereken saniye cinsinden süre.

Yükseltilmiş modda çalışıyor

SystemIndex'i güncelleştiren tüm yöntem çağrıları uygulamanızın yükseltilmiş olarak çalıştırılmasını gerektirir. Aksi takdirde uygulamanız Erişim Reddedildi hatasıyla başarısız olur.

Dizini Yönetme

Dizini Yönetmek için Arabirimler

Search Manager Kullanarak

Gezinme Kapsamı Yöneticisi Kullanarak