Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Bildirim API'lerini kullanarak bileşenler, bir öğenin değiştirildiğini, taşındığını veya silindiğini dizin oluşturucuya bildirebilir ve Windows Search dizin oluşturucusunun dizin oluşturma gerektiren URL'ler kuyruğuna arama kapsamları ekleyebilir.
Bileşenler, Windows Search dizin oluşturucusunun deposundaki verilerin değiştiğini bildirebilir. Genellikle dizin oluşturucunun zamanlanmış gezinmelerine güvenebilirsiniz. Ancak dizin oluşturucuya bildirimde bulunmak, dizin oluşturucunun artımlı dizin oluşturmada tüm depoyu taramamasını sağlayarak performansı artırabilir. Örneğin, veri deponuzun son derece büyük ve/veya e-posta veri deposu gibi son derece meşgul olmasını bekliyorsanız bu önerilir.
- Dizin Oluşturucu Tarafından Yönetilen Bildirimlerin Uygulaması
- Sağlayıcı Tarafından Yönetilen Bildirimlerin Uygulanması
- Ek Kaynaklar
- İlgili konular
Dizin oluşturucu tarafından yönetilen bildirimleri uygulama
Dizin oluşturucu tarafından yönetilen bildirimler, tüm dizin oluşturma süreci boyunca bildirim kuyruğunun bakımını yapma yükünden kurtarırken, veri deponuza erişimi denetlemenizi sağlar. Bildirim sağlayıcınızın veri deposundaki değişiklikleri izlemesi ve bir bildirim kuyruğu oluşturması gerekir. Sağlayıcınız düzenli aralıklarla dizin oluşturucuya bir grup değişiklik bildirimi gönderir. Dizin oluşturucu bildirimlerinizi aldığında bir onay döndürür ve öğeleri kuyruğunuzdan kaldırabilirsiniz. Belirli bir süre sonra bir onay almazsanız bildirimleri yeniden gönderebilirsiniz. Hata durumunda, dizin oluşturucu, taramak için iç öğe kuyruğunu yeniden oluşturur veya depoda artırımlı tarama gerçekleştirir.
Dizin oluşturucu tarafından yönetilen bildirimleri uygulamak için aşağıdakileri uygulamanız gerekir:
- Veri deponuzdaki değişiklikleri izlemeye yönelik bir mekanizma.
- Bu değişikliklerle ilgili bilgileri (birden çok SEARCH_ITEM_PERSISTENT_CHANGE yapısı) kuyruğa almak için bir veri yapısı.
- ISearchPersistentItemsChangedSink arabirimi, bildirimlerinizi dizin oluşturucuya göndermek ve dizin oluşturucudan bildirim bildirimleri almak için.
Bildirimler kuyruğu
Dizin oluşturucuya bildirim olarak göndermek için veri deponuzdaki her değişikliği izlemeniz ve kuyruğa almanız gerekir. Kuyruğa alınan bildirimlerin sayısı ve bunları dizin oluşturucuya ne sıklıkta gönderdiğiniz, sizin durumunuzla bağlıdır. Belki de her n değişiklik sayısı için, veya belirli bir t zaman aralığından sonra, veya ikisinin birleşiminden sonra toplu bildirimler gönderebilirsiniz.
Dizin oluşturucu bildirimlerin bir dizi SEARCH_ITEM_PERSISTENT_CHANGE yapısında gelmesini bekler, bu nedenle kuyruğunuzu benzer şekilde uygulamayı seçebilirsiniz.
ISearchPersistentItemsChangedSink
Bu arabirime erişmek için önce bir ISearchManager nesnesi örneği oluşturarak ISearchCatalogManager nesnesine erişim elde edersiniz. Bu ISearchCatalogManager nesnesinden bir ISearchPersistentItemsChangedSink nesnesi oluşturur ve OnItemsChanged yöntemine yapılan bir çağrıyla veri değişikliklerini dizin oluşturucuya bildirirsiniz.
Bu yöntem çağrısında, raporlanan değişiklik sayısını ve SEARCH_ITEM_PERSISTENT_CHANGE yapı dizisini eklersiniz. Her bir URL'nin dizinlenmek üzere kabul edilip edilmediğini gösteren bir HR tamamlama kodları dizisi alırsınız. Bu, dizin oluşturucudan bildiriminizdir.
Sağlayıcı tarafından yönetilen bildirimleri uygulama
Sağlayıcı tarafından yönetilen bildirimler, veri deponuza erişimi denetlemenize ve Windows Search kataloğunu güncelleştirirken dizin oluşturucunun ilerleme durumunu izlemenize olanak tanır. Sağlayıcınızın veri deposundaki değişiklikleri izlemesi ve bildirim kuyruğu oluşturması gerekir. Sağlayıcınız düzenli aralıklarla dizin oluşturucuya bir grup değişiklik bildirimi gönderir. Dizin oluşturucu bildirimlerinizi aldığında bir onay döndürür. Belirli bir süre sonra bir onay almazsanız bildirimleri yeniden gönderebilirsiniz. Dizin oluşturucu veri deposunda gezinip Windows Search kataloğunu güncelleştirdikçe, her katalog güncelleştirmesini sağlayıcınıza bildirir ve öğeleri kuyruğunuzdan kaldırabilirsiniz. Sağlayıcınız bu işlem boyunca bildirim kuyruğunu korur, böylece hata durumunda dizin oluşturucuya bildirimleri yeniden gönderebilirsiniz.
Sağlayıcı tarafından yönetilen bildirimleri uygulamak için aşağıdakileri uygulamanız gerekir:
- Veri deponuzdaki değişiklikleri izlemeye yönelik bir mekanizma.
- Bu değişikliklerle ilgili bilgileri (birden çok SEARCH_ITEM_CHANGE yapısı) sıraya koymak için bir veri yapısı.
- Bildirimlerinizi dizin oluşturucuya göndermek ve dizin oluşturucudan bildirim onayları almak için ISearchItemsChangedSink arabirimi.
- Dizin oluşturma durumuyla ilgili güncellemeleri almak için ISearchNotifyInlineSite arabirimini kullanın.
Bildirimler kuyruğu
Dizin oluşturucuya bildirim olarak göndermek için veri deponuzdaki her değişikliği izlemeniz ve kuyruğa almanız gerekir. Kuyruğa alınan bildirimlerin sayısı ve bunları dizin oluşturucuya ne sıklıkta gönderdiğiniz, sizin durumunuzla bağlıdır. Belki de her n değişiklik sayısı için, veya belirli bir t zaman aralığından sonra, veya ikisinin birleşiminden sonra toplu bildirimler gönderebilirsiniz.
Dizin oluşturucu bildirimlerin bir dizi SEARCH_ITEM_CHANGE yapısında gelmesini bekler, bu nedenle değişiklik bilgilerini benzer şekilde depolamayı seçebilirsiniz. Ancak, gönderdiğiniz bildirimleri dizin oluşturucu tarafından döndürülen onaylar ve güncelleştirmelerle de eşleştirebilmeniz gerekir. Bildirimlerin yeniden gönderilip gönderilemeyeceğine/ne zaman gönderileceğine karar verebilmeniz için, onay alma işleminin ne kadar sürdüğünü de algılamak isteyebilirsiniz.
ISearchItemsChangedSink
Bu arabirime erişmek için önce bir ISearchManager nesnesi örneği oluşturarak ISearchCatalogManager nesnesine erişim elde edersiniz. Bu ISearchCatalogManager nesnesinden bir ISearchItemsChangedSink nesnesi örneği oluşturur ve OnItemsChanged yöntemine bir çağrıyla veri değişikliklerini dizin oluşturucuya bildirirsiniz.
Bu yöntem çağrısında, bildirilen değişiklik sayısını ve SEARCH_ITEM_CHANGE yapı dizisini eklersiniz. Dizin oluşturucu tarafından atanan ve her bir değişikliği temsil eden DocId dizisinin yanı sıra, her URL'nin indekslenmek üzere kabul edilip edilmediğini gösteren bir tamamlanma kodları dizisi alırsınız. Bu, dizin oluşturucudan bildirimlerinizi aldığını ve öğeleri dizine eklemeye hazırlandığını onaylamanızdır.
Bu noktadan sonra dizin oluşturucu, ISearchNotifyInlineSite arabirimini kullanarak güncelleştirmeler gönderir.
ISearchNotifyInlineSite
Hem öğelerinizin hem de kataloğunuzun durumu hakkında güncelleştirmeler almak için, size geri çağırma gönderebilmesi için ISearchNotifyInlineSite arabiriminizi dizin oluşturucuya kaydetmeniz gerekir. ISearchNotifyInlineSite::OnItemIndexedStatusChange kullanılarak gönderilen her güncelleştirme, öğeleri DocId' ye, her öğenin durumunu (SEARCH_ITEM_INDEXING_STATUS) ve öğelerin içinde olduğu dizin oluşturma aşamasına (SEARCH_INDEXING_PHASE) göre tanımlar.
Daha önce açıklandığı gibi her öğenin durumuyla ilgili güncelleştirmeleri almakla birlikte, kataloğun durumu hakkında da önemli bilgiler alırsınız. Windows Search hizmeti son kullanıcı, üçüncü taraf bir uygulama veya başka bir hata tarafından kesilebilir veya yeniden başlatılabilir. Bu durumda, dizin oluşturucuya hangi bildirimleri tekrar göndereceğinizi belirlemek için bir yol gerekir.
Windows Search hizmeti tarafından çağrılan ISearchNotifyInlineSite::OnCatalogStatusChange yöntemi, aşağıdaki tabloda açıklanan parametreleri kullanarak istemcileri kataloğun durumu hakkında bilgilendirmektedir.
| Parametre | Açıklama |
|---|---|
| guidKatalogSifreSifirlamaImzasi | Katalog sıfırlamasını temsil eden bir GUID. Bu GUID değişirse, tüm bildirimlerin yeniden gönderilmesi gerekir. |
| guidKontrolNoktasıİmzası | Geri yüklenen son denetim noktasını temsil eden GUID. Bu GUID değişirse, son kaydedilen denetim noktasından bu yana birikmiş tüm bildirimlerin yeniden gönderilmesi gerekir. |
| Son Kontrol Noktası Numarası | Kaydedilen son kontrol noktasını gösteren bir sayı. |
Katalog denetim noktası oluştuğunda, arama hizmeti dwLastCheckPointNumber güncelleştirir ve bu denetim noktasından önce gönderilen tüm bildirimler, bir hizmet hatası durumunda güvenli ve kurtarılabilir. Bildirim sağlayıcılarının, yalnızca denetim noktaları arasında gönderilen bildirimleri izlemesi ve katalog geri yükleme veya sıfırlama durumunda yeniden göndermesi gerekir.
Katalog geri yüklemesi gerçekleşirse, arama hizmeti kataloğu son kaydedilen denetim noktasına geri alır ve guidCheckPointSignaturegüncelleştirir. Bu durumda, bildirim sağlayıcılarının dwLastCheckPointNumbertarafından tanımlanan en son kaydedilen denetim noktasından bu yana biriken tüm bildirimleri yeniden doldurması gerekir.
Katalog sıfırlaması yapılması gerekiyorsa, arama hizmeti kataloğun tamamını sıfırlar ve guidCatalogResetSignature güncelleştirir. Bildirim sağlayıcısının tarama kapsamının tamamını yeniden iletmesi gerekir.
Ek kaynaklar
- Dizin oluşturma işlemine genel bakış için bkz. Dizin Oluşturma İşlemi.
- Katalog Yöneticisi ve Katalog Arama Yöneticisi'ne (CSM) genel bakış için bkz. Katalog Yöneticisi Kullanımı ve Gezinme Kapsam Yöneticisi Kullanımı.
- Kabuk veri deposu oluşturma hakkında bilgi için bkz. Temel Klasör Nesne Arabirimlerini Uygulama.
İlgili konular
-
kavramsal