Aracılığıyla paylaş


Windows Search'te Dizin Oluşturma İşlemi

Bu konu, dizin oluşturma işleminin üç aşamasını ve her birinde yer alan birincil bileşenleri açıklar, dizin oluşturma etkinliğinin zamanlamasını açıklar ve veri depolarının veya dosya biçimlerinin dizine alınmasını isteyen üçüncü taraf geliştiriciler için bazı notlar sağlar.

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

Genel bakış

Windows Search, .doc veya .jpeg biçimleri gibi farklı dosya biçimlerindeki dosyalardan ve dosya sistemi veya Windows Outlook posta kutuları gibi veri depolarından özelliklerin ve içeriğin dizine eklenmesini destekler. İki tür dizin vardır: bir özelliğin tüm değerine göre filtrelemeye ve sıralamaya izin veren değer dizinleri ve metin özellikleri veya içerik içinde sözcükleri dizinleyen ters dizinler. Özel bir dosya biçiminiz veya veri deponuz varsa, öğelerinizin doğru şekilde dizine alınabilmesi için Windows Search dizinlerinin nasıl olduğunu anlamanız gerekir.

Dizin oluşturma işlemi, toplayıcı adlı bir Windows Search bileşeni tarafından denetlenen üç aşamada gerçekleşir. İlk aşamada, toplayıcı kuyruklara URL'ler ekler. URL'ler dizine eklenecek öğeleri tanımlar ve kuyruklar yalnızca URL'lerin önceliklendirilmiş listeleridir. İkinci aşamada toplayıcı, öğelere erişmek ve bunlar hakkında veri toplamak için diğer Windows Search ve üçüncü taraf bileşenlerini koordine eder. Son olarak, üçüncü aşamada toplanan veriler dizine eklenir.

Aşağıdaki diyagramda, dizin oluşturma işlemi aracılığıyla veri akışının temel bileşenleri ve akışı gösterilmektedir. Dizin için veri toplamaya bir dizi bileşen dahil edilir. Bunlardan bazıları Windows Search'ün bir parçasıdır ve bazıları üçüncü taraf uygulamalardan gelir. Özel bir veri deponuz veya dosya biçiminiz varsa, Windows Search protokol işleyicinize dayanır ve URL'lere erişmek ve dizin oluşturmak için özellikler yayma için filtre kullanır. Windows Search bileşenleri mavi, üçüncü taraf bileşenleri ise yeşil renkle gösterilir.

Dizin oluşturma işlemi sırasında bileşenler arasındaki etkileşimi gösteren diyagramı

1. Aşama: Dizin oluşturma için Kuyruğa Alınan URL'ler

Dizin oluşturmanın ilk aşamasında, toplayıcı veri depolarındaki güncelleştirmeler hakkında bilgi toplar, bu bilgileri bilinen gezinme kapsamıyla karşılaştırır ve ardından dizin için veri toplamak üzere geçiş yapmak üzere bir URL kuyruğu oluşturur. FAT sürücüleri gibi bildirime dayalı olmayan kaynaklar için toplayıcı, dizindeki verilerin yeni tutulması için gezinme kapsamının tam geçişini düzenli aralıklarla başlatır. NTFS gibi kaynaklar için yalnızca tek bir tarama vardır ve geri kalan her şey USN Değişiklik Günlüğügelen bildirimlerle işlenir. Microsoft Outlook'ta da gezinme yoktur. Aşağıdaki diyagram, gezinme dışı dizin oluşturma için kuyruklama işleminin üst düzey bir bakışını göstermektedir.

Tarama dışı dizin oluşturmadiyagramı

Bu bölümün geri kalanında Windows Search'ün gezinecek URL'leri nasıl belirlediğini ve yol boyunca bazı önemli terimleri tanımladığını açıklar.

Gezinme Kapsamı Gezinme kapsamı, Kullanıcının daha hızlı aramalar için dizine eklenmesini istediği öğeler hakkında veri toplamak için Windows Search'ün geçiş yaptığı bir URL kümesidir. Windows Search, kullanıcıların Belgeleri yolları ve Resimler klasörlerinin gibi bazı URL'leri varsayılan olarak gezinme kapsamına ekler. Diğer URL'ler üçüncü taraf uygulamalar, kullanıcılar ve Grup İlkesi tarafından eklenebilir. Son olarak, hem kullanıcılar hem de Grup İlkesi URL'leri açıkça dışlayabilir. Windows Search, eklenen tüm URL'leri alır ve gezinme kapsamını belirlemek için dışlanan URL'leri kaldırır. Bu, toplayıcının çalışmaya başladığı URL'lerin çalışma kümesidir.

Toplayıcı Toplayıcı, gezinme kapsamındaki URL'ler hakkında bilgi toplayan ve dizin oluşturucunun gezinmesi için bir URL kuyruğu oluşturan bir Windows Search bileşenidir. Gezinme kapsamındaki bir öğe eklendiğinde, silindiğinde veya güncelleştirildiğinde, toplayıcıya veri deposunun bildirim sağlayıcısı tarafından bildirim gönderilir. Toplayıcı'nın gezinme kapsamı kökünde başladığı ilk tarama gerçekleştirilir. URL, protokol işleyicisine ve ardından uygun IFilter'e iletilir. Filtre genellikle daha fazla URL üreten bir dizin numaralandırmasıdır. Bildirimler sabit durumdadır. Genellikle her veri deposu, bu bildirimleri sağlayan kendi protokol işleyicisine sahiptir. Örneğin, yerel dosya sisteminde USN Değişiklik Günlüğü, file:// protokolü altındaki tüm URL'ler için bildirim sağlayıcısı görevi görür. Benzer şekilde, Microsoft Outlook mapi:// protokolü altındaki tüm URL'ler için bildirim sağlayıcısı olarak görev yapar. Kullanıcı e-postayı aldığında, taşırken veya sildiğinde, Outlook e-postanın değişen durumunu toplayıcıya bildirir. Toplayıcı, bu bildirimlerden aldıklarını kullanarak, taranmak üzere URL'ler için dizinleme kuyrukları oluşturur.

dizin oluşturma kuyruklarını Dizin oluşturma kuyrukları, dizine alınması veya yeniden dizine alınması gereken öğeleri tanımlayan URL'lerin listesidir. Toplayıcı, bildirim sağlayıcılarından aldığı URL'leri gezinme kapsamındaki URL'lerle karşılaştırır. Gezinme kapsamına giren bildirim sağlayıcılarından gelen her URL, toplayıcının bir sonraki işlenme URL'lerini önceliklendirmek için kullandığı kuyruğa eklenir.

Üç kuyruk vardır: yüksek öncelikli bildirimler, normal bildirimler ve düzenli gezinmeler. Yüksek öncelikli kuyruk, hemen işlenmesi gereken bildirimler içindir. Örneğin, bir kullanıcı Windows Gezgini'nde bir öğenin başlık özelliğini değiştirdiğinde, değişiklik sonrasında Windows Gezgini görünümünün hemen güncelleştirilmesi gerekir. Normal bildirim kuyruğu kalan tüm değişiklik bildirimleri içindir. Değiştirilen öğelerin kullanıcı tarafından ilgi çekici olma olasılığı daha yüksek olduğundan bildirim kuyrukları gezinme kuyruğundan önce işlenir. Toplayıcı, her kuyruktaki URL'lerin verilerine ilk giren, ilk çıkar (FIFO) sırasıyla erişir.

Windows 7'de tanıtılan öncelik belirleme ve olay API'leri hakkında daha fazla bilgi için bkz. Dizin Oluşturma Öncelik Belirlemesi ve Satır Kümesi Olayları Windows 7. Gezinme kapsamı yönetimi ve bildirimleri hakkında daha fazla bilgi için bkz. Değişiklik Bildirimleri Sağlama ve Gezinme Kapsamı Yöneticisini Kullanma.

2. Aşama: URL'leri Tarama

Dizin oluşturmanın ikinci aşamasında, toplayıcı kuyruklarda gezinerek veri depolarına erişip öğe akışlarını alır. İlk olarak, toplayıcı her URL için uygun protokol işleyicisini bulur. Ardından, toplayıcı URL'yi protokol işleyicisine geçirir. Protokol işleyicisi öğeye erişir ve öğe meta verilerini toplayıcıya geri geçirir. Toplayıcı, doğru filtreyi tanımlamak için meta verileri kullanır.

Aşağıdaki diyagramda URL gezinme işleminin üst düzey bir görünümü gösterilmektedir. Bu aşama, bileşenler arasında önemli bir koordinasyon ve iletişim içerir.

URL'lerde gezinme vediyagramı

Bu bölümün geri kalanında Windows Search'ün dizin oluşturma için öğelere nasıl eriştiği açıklanır ve ilgili bileşenlerin her birinin rolleri açıklanır.

Toplayıcı 2. aşamadaki gezinme aşamasında toplayıcı, yüksek öncelikli kuyruktan başlayarak kuyruklardaki URL'leri işler. Her URL, protokolünü tanımlamak için incelendi. Toplayıcı, ardından bu protokol için kaydedilmiş olan protokol işleyicisini bulur ve arama protokolünün ana bilgisayar sürecinde onu çalıştırır.

Arama Protokolü Konağı Arama protokolü konağı yalnızca protokol işleyicileri için kutulanmış bir konak işlemidir. Genellikle, Windows Search biri sistem güvenlik bağlamında, diğeri de kullanıcı güvenlik bağlamında çalışan iki konak işlemi oluşturur. Bu ayrım, kullanıcıya özgü verilerin sistem bağlamında hiçbir zaman çalıştırılmasını sağlar.

Windows Search, bir protokol işleyicisinin örneğini diğer işlemlerden veya uygulamalardan yalıtmak için de konak işlemini kullanır. Bu şekilde, hiçbir dış uygulama protokol işleyicisinin belirli bir örneğine erişemez ve protokol işleyicisi beklenmedik bir şekilde başarısız olursa yalnızca dizin oluşturma işlemi etkilenir. Konak işlemi üçüncü taraf kodu (protokol işleyicileri) çalıştırdığından, Windows Search başarılı bir saldırının işlemdeki bilgilerden yararlanma süresini en aza indirmek için işlemi düzenli aralıklarla geri dönüştürür. Bunun ötesinde, arama protokolü konağı URL'lerde gezinmeyi veya öğelerin dizine alınmasını etkilemez.

Protokol İşleyicileri Protokol işleyicileri, veri deposunun protokollerini kullanarak veri deposundaki öğelere erişim sağlar. Örneğin, NTFS protokol işleyicisi file:// protokol kullanarak yerel sürücüdeki dosyalara erişim sağlar. Protokol işleyicisi veri deposunda dolaşmayı, yeni veya güncelleştirilmiş öğeleri tanımlamayı ve toplayıcıya bildirmeyi bilir. Daha sonra gezinme başladığında, protokol işleyicisi öğenin temel akışına bağlanmak ve güvenlik kısıtlamaları ve son değiştirme zamanı gibi öğe meta verilerini döndürmek için toplayıcıya bir IUrlAccessor nesnesi sağlar.

Not

Protokol işleyicileri Windows Search bileşenleri değildir; bunlar, erişmek üzere tasarlandıkları belirli protokolün ve veri deposunun bileşenleridir. Dizine eklemek istediğiniz özel bir veri deponuz varsa, bir protokol işleyicisi uygulamanız gerekir. Protokol işleyicileri ve uygulama hakkında daha fazla bilgi için Protokol İşleyicileri Geliştirme bölümüne bakın.

Meta Veriler ve Akış Protokol işleyicisinin IUrlAccessor nesnesi tarafından döndürülen meta verileri kullanarak toplayıcı URL için doğru filtreyi tanımlar. Toplayıcı, öğenin dosya adı uzantısını ayrıştırarak bu uzantı için kaydedilen filtreyi arar. Toplayıcı bir filtre bulamazsa, Windows Search en az sayıda sistem özelliği bilgisi (System.ItemName gibi) türetmek için meta verileri kullanır ve dizini güncelleştirir. Aksi takdirde, toplayıcı filtreyi bulursa, dizin oluşturmanın üçüncü aşaması başlar.

3. Aşama: Dizini Güncelleştirme

Dizin oluşturmanın üçüncü aşamasında, toplayıcı URL için doğru filtreyi oluşturur ve filtreyi IUrlAccessor nesnesinden gelen akışla başlatır. Filtre daha sonra öğeye erişir ve dizinin içeriğini döndürür. Özel bir dosya biçiminiz varsa, Windows Search URL'lere erişmek ve dizin oluşturma için içerik ve özellikler yaymak için filtrenize dayanır.

Aşağıdaki diyagramda veri erişim işleminin üst düzey bir görünümü gösterilmektedir. Bu aşama, bileşenler arasında önemli bir koordinasyon ve iletişim içerir.

Dizindiyagramı

Bu bölümün geri kalanında Windows Search'ün dizin oluşturma için öğe verilerine nasıl eriştiği ve ilgili bileşenlerin her birinin rolleri açıklanmaktadır.

Toplayıcı Bu aşamanın başında, toplayıcının rolü, öğe için doğru filtreyi kurmak ve ona öğe akışını aktarmaktır. Bu aşamanın sonunda, toplayıcı filtre ve özellik işleyicisi tarafından yayılan içeriği ve özellikleri alır ve dizini güncelleştirir.

Filtre Konağı Filtre konağı yalnızca filtreler ve özellik işleyicileri için bir konak işlemidir ve arama protokolü konağına benzer bir amaca hizmet eder. Ana işlem, arama protokolü ana işlemlerinin protokol işleyicilerini izole etmesiyle aynı güvenlik ve kararlılık nedenleriyle filtreleri ve özellik işleyicilerini sistemin geri kalanından izole ediyor. Ana işlem minimum haklarla çalışır (dosya sistemine bile erişemez) ve güvenlik saldırılarına karşı korumak için zaman zaman yenilenir. Windows Search, kaynak kullanımını izleyerek bir filtre çok fazla kaynak tükettiğinde konak işleminin yeniden başlatılmasını sağlar.

Filtreler Filtreler, dizin oluşturma işleminde toplayıcı için öğe bilgilerini yayan kritik bileşenlerdir. Filtreler, uygulamalarında kullanılan asıl arabirimden, IFilter arabiriminden sonra adlandırılır ve sonuç olarak bazen IFilters olarak adlandırılır. İki tür filtre vardır: dosyalar gibi tek tek öğelerle ve klasörler gibi kapsayıcılarla etkileşim kuran filtreler. Her ikisi de dizin için veri sağlar.

Protokol işleyicisinin IUrlAccessor nesnesi tarafından döndürülen meta verileri kullanan toplayıcı, belirli bir URL için doğru filtreyi tanımlar ve akışa geçirir. Toplayıcı, doğru filtreyi bir protokol işleyicisi aracılığıyla veya dosya adı uzantısı, MIME türü veya sınıf tanımlayıcısı (CLSID) ile tanımlar. URL bir kapsayıcıyı gösteriyorsa, filtre kapsayıcının özelliklerini yayar ve kapsayıcıdaki öğeleri (alt URL'ler) numaralandırır. URL bir öğeyi işaret ediyorsa ve metin içeriği varsa, filtre bu metin içeriğini döndürür; ancak, özelliklerin okunması özellik işleyicilerinden daha karmaşıktır. Genellikle, özellik işleyicileri öğe özelliklerini gösterirken filtrelerin öğe içeriğini yaymalarını öneririz. Ancak, filtrenizin özellik işleyicilerini tanımayan eski uygulamalarla çalışması gerekiyorsa, özellikleri yaymak için filtreyi de uygulayabilirsiniz.

Not

Filtreler Windows Search bileşenleri değildir; bunlar, erişmek üzere tasarlandıkları belirli dosya biçimi veya kapsayıcıyla ilgili bileşenlerdir. Filtreler ve özel dosya biçimi veya kapsayıcısı için uygulama hakkında daha fazla bilgi için bkz. Windows Search'nde Filtre İşleyicileri Oluşturmak için En İyi Yöntemler.

Aşağıdaki tabloda, toplayıcının dizin oluşturma işlemi sırasında bir filtreden (IFilter) ve özellik işleyicisinden (IPropertyStore) aldığı sonuçlar listelenmiştir.

IFilter IPropertyStore
Yazmaya izin ver Hayır Evet
Karışım içeriği ve özellikleri Evet Hayır
Çok Dilli Evet Hayır
bağlantıları yayma Evet Hayır
MIME Evet Hayır
Metin sınırları Cümle, paragraf, bölüm Hiç kimse
İstemci / sunucu Her ikisi Müşteri
Uygulama Karmaşık Basit

Özellik İşleyicileri Özellik işleyicileri, belirli bir dosya biçimi için özellikleri okuyan ve yazan bileşenlerdir. Öğelere erişir ve içerik için filtreler gibi toplayıcıya özellikler sağlarlar. Özellik işleyicilerinin uygulanması filtrelere göre daha kolaydır. Metin tabanlı dosya biçimi çok basitse veya dosyaların çok küçük olması bekleniyorsa, özellik işleyicisi hem özellikleri hem de içeriği yayar.

Not

Özellik işleyicileri Windows Search bileşenleri değildir; bunlar, erişmek üzere tasarlandıkları belirli dosya biçimiyle ilgili bileşenlerdir. Özellik işleyicileri ve özel dosya biçimi için uygulama hakkında daha fazla bilgi için bkz. Windows Searchiçin Özellik İşleyicileri Geliştirme .

Windows Search Özellikleri, büyük bir özellik kitaplığı içeren bir özellik sistemi sağlar. Herhangi bir özellik, filtre veya özellik işleyicisi tarafından tanımlanan herhangi bir öğede görüntülenebilir. Özel bir dosya biçiminiz varsa, dosya biçiminizin özelliklerini bu sistem özellikleriyle eşleyebilir ve yeni özel özellikler oluşturabilirsiniz. Filtre veya özellik işleyiciniz bu özellikleri yaydığında toplayıcı, kullanıcıların özelliklerinizi kullanarak arama gerçekleştirebilmesi için dizini güncelleştirir. Dosya biçimi için özel özellikler oluşturma ve kaydetme hakkında daha fazla bilgi için bkz. Özellik Sistemi.

SystemIndex SystemIndex olarak adlandırılan dizin, dizine alınan verileri depolar ve öğe özellikleri için bir özellik deposu ile özellikler ve içerikler üzerinde dizinlerden, ayrıca metin içeriği ve özellikleri için bir ters dizinden oluşur. Toplayıcı dizini güncelleştirdikten sonra, dizin Windows Search ve diğer uygulamalar tarafından sorgulanabilir. Dizini sorgulama yolları hakkında daha fazla bilgi için bkz. Program Aracılığıyla Dizin Sorgulama.

Not

Bir şemayı yeniden kaydettiğinizde, daha önce tanımlanmış özelliklerin özniteliklerinde yapılan değişiklikler dizin oluşturucu tarafından dikkate alınamayabilir. Çözüm, dizini yeniden oluşturmak veya eskilerini güncelleştirmek yerine değişiklikleri yansıtan yeni özellikler eklemektir (önerilmez). Daha fazla bilgi için bkz: Uygulayıcılara Not, Özellikler Sistemine Genel Bakış.

Dizin Oluşturma Nasıl Zamanlanır?

Windows Search ilk yüklendiğinde, yüksek G/Ç ve kullanıcı etkinliği dönemlerinde duraklatılarak gezinme kapsamının tam dizinini oluşturur. Varsayılan gezinme kapsamı, Documents, Music, Picturesve Videosgibi varsayılan kitaplık konumlarından oluşur. Bildirimler, ilk tarama tamamlanmadan önce bile işlenir. Bazen, toplayıcı URL'leri tam gezinme kapsamından tarar. Bu tam gezinmeler, dizindeki verilerin yeni olmasını sağlar. Örneğin, bir bildirim sağlayıcısı bildirim gönderemezse veya Windows Search hizmeti beklenmedik şekilde sonlandırılırsa, toplayıcı yeni veya değiştirilmiş öğeler hakkında bilgi sahibi olmaz ve bu öğelerin dizinini oluşturmaz. İki tür kaynak vardır: yalnızca bildirim ve bildirim etkinleştirilmiş. Her iki kaynakta da toplayıcı başlangıçta dizini tarar. İlk gezinmeden sonra, USN Değişiklik Günlüğü gibi bir hata olmadıkça, yalnızca bildirim kaynakları bir daha tam gezinme yapmaz. Bildirim özellikli kaynaklar, dizin oluşturucu başlatıldığında artımlı gezinme yapar, ancak çalışırken bildirimleri dinler. NTFS ve Microsoft Outlook yalnızca bildirimdir. Internet Explorer ve FAT bildirim etkindir.

Uygulayıcılara Notlar

Dizindeki verilerin kalitesi ve dizin oluşturma işleminin verimliliği büyük ölçüde filtre ve özellik işleyicisi uygulamanıza bağlıdır. URL dosya biçiminizi her tanımlayışında filtre çağrıldığından, filtreniz verimsizse dizin oluşturma işlemi önemli ölçüde yavaşlayabilir. Özellik işleyiciniz tüm dosya özelliklerini sistem özelliklerine doğru şekilde eşlemezse veya bu özellikleri doğru şekilde yaymazsa, dizindeki veriler yanlış olur ve daha sonra bu özellikler için yapılan aramalar yanlış sonuçlar döndürür. Filtre veya özellik işleyiciniz başarısız olursa, dizin oluşturucu verileri dizinleyemez.

Windows Search dışındaki uygulamalar ve işlemler protokol işleyicilerine, filtrelere ve özellik işleyicilerine dayanır. Uygulamalarınız bu uygulamaları beklemediğiniz şekillerde etkileyebilir. Windows Arama Geliştirme Kılavuzu tasarım seçenekleri ve bu bileşenlerin her birini test etme hakkında öneriler sağlar.

Windows Search'te Dizin Oluşturma, Sorgulama ve Bildirimler

Dizin İçeriği

Windows Search'te Sorgulama Süreci

Windows Arama'da Bildirimler Süreci

URL Biçimlendirme Gereksinimleri