Proses Pengindeksan di Windows Search

Topik ini menjelaskan tiga tahap proses pengindeksan dan komponen utama yang terlibat dalam masing-masing, menjelaskan waktu aktivitas pengindeksan, dan memberikan beberapa catatan untuk pengembang pihak ketiga yang ingin penyimpanan data atau format file mereka diindeks.

Topik ini diatur sebagai berikut:

Gambaran Umum

Windows Search mendukung pengindeksan properti dan konten dari file dengan format file yang berbeda, seperti format .doc atau .jpeg, dan penyimpanan data, seperti sistem file atau kotak surat Windows Outlook. Ada dua jenis indeks: indeks nilai yang memungkinkan pemfilteran dan pengurutan berdasarkan seluruh nilai properti dan indeks terbalik yang mengindeks kata-kata dalam properti atau konten tekstual. Jika Anda memiliki format file kustom atau penyimpanan data, Anda perlu memahami bagaimana indeks Windows Search agar item Anda diindeks dengan benar.

Proses pengindeksan terjadi dalam tiga tahap yang dikontrol oleh komponen Windows Search yang disebut pengumpul. Pada tahap pertama, pengumpul menambahkan URL ke antrean. URL mengidentifikasi item yang akan diindeks, dan antrean hanyalah daftar URL yang diprioritaskan. Pada tahap kedua, pengumpul mengoordinasikan Windows Search lainnya dan komponen pihak ketiga untuk mengakses item dan mengumpulkan data tentangnya. Akhirnya, pada tahap ketiga, data yang dikumpulkan ditambahkan ke indeks.

Diagram berikut menunjukkan komponen utama dan aliran data melalui proses pengindeksan. Sejumlah komponen terlibat dalam pengumpulan data untuk indeks. Beberapa di antaranya adalah bagian dari Windows Search, dan beberapa berasal dari aplikasi pihak ketiga. Jika Anda memiliki penyimpanan data kustom atau format file, Windows Search bergantung pada handler protokol Anda dan filter untuk mengakses URL dan memancarkan properti untuk pengindeksan. Komponen Windows Search ditampilkan dalam warna biru, dan komponen pihak ketiga ditampilkan dalam warna hijau.

diagram memperlihatkan interaksi antar komponen selama proses pengindeksan

Tahap 1: Mengantre URL untuk Pengindeksan

Pada tahap pertama pengindeksan, pengumpul mengumpulkan informasi tentang pembaruan penyimpanan data, membandingkan informasi tersebut dengan cakupan perayapan yang diketahui, lalu membangun antrean URL untuk melintasi untuk mengumpulkan data untuk indeks. Untuk sumber yang tidak didasarkan pada pemberitahuan, seperti drive FAT, pengumpul secara berkala memulai traversal penuh cakupan perayapan sehingga data dalam indeks tetap segar. Untuk sumber seperti NTFS, hanya ada satu perayapan dan segala sesuatu yang lain ditangani oleh pemberitahuan dari USN Change Journal. Tidak ada juga perayapan Microsoft Outlook. Diagram berikut menunjukkan tampilan tingkat tinggi dari proses antrean untuk pengindeksan non-rayapan.

diagram memperlihatkan proses kueri untuk pengindeksan non-rayapan

Bagian lainnya menjelaskan bagaimana Windows Search menentukan URL apa yang akan dirayapi, dan menentukan beberapa istilah penting di sepanjang jalan.

Lingkup Rayapan Cakupan perayapan adalah sekumpulan URL yang dilalui Windows Search untuk mengumpulkan data tentang item yang ingin diindeks pengguna untuk pencarian yang lebih cepat. Windows Search menambahkan beberapa URL ke lingkup perayapan secara default, seperti jalur ke folder Dokumen dan Gambar pengguna. URL lain dapat ditambahkan oleh aplikasi, pengguna, dan Kebijakan Grup pihak ketiga. Terakhir, pengguna dan Kebijakan Grup dapat secara eksplisit mengecualikan URL. Windows Search mengambil semua URL yang ditambahkan dan menghapus URL yang dikecualikan untuk menentukan cakupan perayapan. Ini adalah kumpulan URL yang berfungsi tempat pengumpul memulai pekerjaannya.

Pengumpul Pengumpul adalah komponen Windows Search yang mengumpulkan informasi tentang URL dalam lingkup perayapan dan membuat antrean URL untuk dirayapi oleh pengindeks. Saat item dalam lingkup perayapan ditambahkan, dihapus, atau diperbarui, pengumpul akan diberi tahu oleh penyedia pemberitahuan penyimpanan data. Ada perayapan awal di mana pengumpul dimulai di akar lingkup perayapan. URL diteruskan ke handler protokol lalu ke IFilter yang sesuai. Filter biasanya merupakan enumerasi direktori yang menghasilkan lebih banyak URL. Pemberitahuan adalah status stabil. Biasanya, setiap penyimpanan data memiliki handler protokolnya sendiri yang menyediakan pemberitahuan ini. Misalnya, pada sistem file lokal, USN Change Journal bertindak sebagai penyedia pemberitahuan untuk semua URL di bawah protokol file://. Demikian pula, Microsoft Outlook bertindak sebagai penyedia pemberitahuan untuk semua URL di bawah protokol mapi://. Saat pengguna menerima, memindahkan, atau menghapus email, Outlook memberi tahu pengumpul tentang status email yang diubah. Dari pemberitahuan ini, pengumpul membuat antrean pengindeksan URL untuk dirayapi.

Antrean Pengindeksan Antrean pengindeksan adalah daftar URL yang mengidentifikasi item yang perlu diindeks atau diindeks ulang. Pengumpul membandingkan URL yang diterimanya dari penyedia pemberitahuan dengan URL dalam cakupan perayapan. Setiap URL dari penyedia pemberitahuan yang termasuk dalam cakupan perayapan ditambahkan ke antrean yang digunakan pengumpul untuk memprioritaskan URL mana yang akan diproses berikutnya.

Ada tiga antrean: pemberitahuan prioritas tinggi, pemberitahuan normal, dan perayapan berkala. Antrean prioritas tinggi adalah untuk pemberitahuan yang harus segera diproses. Misalnya, ketika pengguna mengubah properti judul item di Windows Explorer, tampilan Windows Explorer perlu diperbarui segera setelah perubahan. Antrean pemberitahuan normal adalah untuk semua pemberitahuan perubahan yang tersisa. Antrean pemberitahuan diproses sebelum antrean perayapan karena item yang diubah lebih mungkin menarik bagi pengguna. Pengumpul mengakses data untuk URL pada setiap antrean dalam urutan first in, first out (FIFO).

Untuk informasi selengkapnya tentang prioritas, dan API peristiwa yang diperkenalkan di Windows 7, lihat Prioritas Pengindeksan dan Peristiwa Set Baris di Windows 7. Untuk informasi selengkapnya tentang manajemen dan pemberitahuan lingkup perayapan, lihat Menyediakan Pemberitahuan Perubahan dan Menggunakan Pengelola Lingkup Perayapan.

Tahap 2: URL Perayapan

Pada tahap kedua pengindeksan, pengumpul merayap melalui antrean, mengakses penyimpanan data dan mengambil aliran item. Pertama, pengumpul menemukan penangan protokol yang sesuai untuk setiap URL. Kemudian, pengumpul meneruskan URL ke handler protokol. Penangan protokol mengakses item dan meneruskan metadata item kembali ke pengumpul. Pengumpul menggunakan metadata untuk mengidentifikasi filter yang benar.

Diagram berikut menunjukkan tampilan tingkat tinggi dari proses perayapan URL. Tahap ini mencakup koordinasi dan komunikasi yang cukup besar antar komponen.

diagram memperlihatkan proses perayapan url dan mengakses item

Bagian lainnya menjelaskan bagaimana Windows Search mengakses item untuk pengindeksan dan menjelaskan peran masing-masing komponen yang terlibat.

Pengumpul Pada tahap 2, tahap perayapan, pengumpul memproses URL dalam antrean, dimulai dengan antrean prioritas tinggi. Setiap URL diperiksa untuk mengidentifikasi protokolnya. Pengumpul kemudian mencari penangan protokol yang terdaftar untuk protokol tersebut dan membuat instansnya dalam proses host protokol pencarian.

Host Protokol Pencarian Host protokol pencarian hanyalah proses host kotak untuk penangan protokol. Biasanya, Windows Search membuat dua proses host tersebut, satu yang berjalan dalam konteks keamanan sistem dan yang berjalan dalam konteks keamanan pengguna. Pemisahan ini memastikan bahwa data khusus untuk pengguna tidak pernah dijalankan dalam konteks sistem.

Windows Search juga menggunakan proses host untuk mengisolasi instans penangan protokol dari proses atau aplikasi lain. Dengan cara ini, tidak ada aplikasi luar yang dapat mengakses instans tertentu dari handler protokol, dan jika handler protokol gagal secara tak terduga, hanya proses pengindeksan yang terpengaruh. Karena proses host menjalankan kode pihak ketiga (penangan protokol), Windows Search secara berkala mendaur ulang proses untuk meminimalkan waktu serangan yang berhasil harus mengeksploitasi informasi dalam prosesnya. Di luar ini, host protokol pencarian tidak memengaruhi perayapan URL atau pengindeksan item.

Penangan Protokol Penangan protokol menyediakan akses ke item di penyimpanan data menggunakan protokol penyimpanan data. Misalnya, handler protokol NTFS menyediakan akses ke file di drive lokal menggunakan protokol file://. Handler protokol tahu cara melintasi penyimpanan data, mengidentifikasi item baru atau yang diperbarui, dan memberi tahu pengumpul. Kemudian, saat perayapan dimulai, handler protokol menyediakan objek IUrlAccessor kepada pengumpul untuk mengikat aliran yang mendasar item dan mengembalikan metadata item seperti pembatasan keamanan dan waktu terakhir diubah.

Catatan

Penangan protokol bukan komponen Windows Search; mereka adalah komponen dari protokol dan penyimpanan data tertentu yang dirancang untuk diakses. Jika Anda memiliki penyimpanan data kustom yang ingin Diindeks, Anda perlu menerapkan penangan protokol. Untuk informasi selengkapnya tentang penangan protokol dan cara menerapkannya, lihat Mengembangkan Penangan Protokol.

Metadata dan Aliran Menggunakan metadata yang dikembalikan oleh objek IUrlAccessor handler protokol, pengumpul mengidentifikasi filter yang benar untuk URL. Pengumpul mengurai ekstensi nama file item dan mencari filter yang terdaftar untuk ekstensi tersebut. Jika pengumpul tidak dapat menemukan filter, Windows Search menggunakan metadata untuk memperoleh sekumpulan informasi properti sistem minimal (seperti System.ItemName) dan memperbarui indeks. Jika tidak, jika pengumpul menemukan filter, tahap ketiga pengindeksan dimulai.

Tahap 3: Memperbarui Indeks

Pada tahap ketiga pengindeksan, pengumpul membuat instans filter yang benar untuk URL dan menginisialisasi filter dengan aliran dari objek IUrlAccessor . Filter kemudian mengakses item dan mengembalikan konten untuk indeks. Jika Anda memiliki format file kustom, Windows Search bergantung pada filter Anda untuk mengakses URL dan memancarkan konten dan properti untuk pengindeksan.

Diagram berikut menunjukkan tampilan tingkat tinggi dari proses akses data. Tahap ini mencakup koordinasi dan komunikasi yang cukup besar antar komponen.

diagram memperlihatkan data item yang dipancarkan untuk indeks

Bagian lainnya menjelaskan bagaimana Windows Search mengakses data item untuk pengindeksan dan menjelaskan peran masing-masing komponen yang terlibat.

Pengumpul Pada awal tahap ini, peran pengumpul adalah membuat instans filter yang benar untuk item dan meneruskannya ke aliran item. Pada akhir tahap ini, pengumpul mengambil konten dan properti yang dipancarkan oleh filter dan handler properti dan memperbarui indeks.

Filter Host Host filter hanyalah proses host untuk filter dan penangan properti dan melayani tujuan yang mirip dengan host protokol pencarian. Proses host mengisolasi filter dan penangan properti dari sistem lainnya karena alasan keamanan dan stabilitas yang sama sehingga proses host protokol pencarian mengisolasi penangan protokol. Proses host berjalan dengan hak minimal (bahkan tidak dapat mengakses sistem file) dan kadang-kadang didaur ulang untuk melindungi dari serangan keamanan. Windows Search juga memantau penggunaan sumber daya sehingga jika filter mengonsumsi terlalu banyak sumber daya, proses host didaur ulang.

Filter Filter adalah komponen penting dalam proses pengindeksan yang memancarkan informasi item untuk pengumpul. Filter dinamai sesuai dengan antarmuka utama yang digunakan dalam implementasinya, antarmuka IFilter , dan akibatnya terkadang disebut sebagai IFilters. Ada dua jenis filter: satu yang berinteraksi dengan item individual seperti file dan satu yang berinteraksi dengan kontainer seperti folder. Keduanya menyediakan data untuk indeks.

Menggunakan metadata yang dikembalikan oleh objek IUrlAccessor penangan protokol, pengumpul mengidentifikasi filter yang benar untuk URL tertentu dan meneruskannya ke aliran. Pengumpul mengidentifikasi filter yang benar baik melalui penangan protokol atau dengan ekstensi nama file, jenis MIME, atau pengidentifikasi kelas (CLSID). Jika URL menunjuk ke kontainer, filter memancarkan properti untuk kontainer dan menghitung item dalam kontainer (URL anak). Jika URL menunjuk ke item, filter mengembalikan konten tekstual, jika ada pembacaan properti dan lebih kompleks daripada penangan properti. Umumnya, sebaiknya filter memancarkan konten item saat penangan properti memancarkan properti item. Namun, jika filter Anda perlu bekerja dengan aplikasi lama yang tidak mengenali penangan properti, Anda juga dapat menerapkan filter untuk memancarkan properti.

Catatan

Filter bukan komponen Pencarian Windows; mereka adalah komponen yang terkait dengan format file atau kontainer tertentu yang dirancang untuk diakses. Untuk informasi selengkapnya tentang filter dan cara mengimplementasikannya untuk format atau kontainer file kustom, lihat Praktik Terbaik untuk Membuat Penangan Filter di Windows Search.

Tabel berikut mencantumkan hasil yang diterima pengumpul dari filter (IFilter) dan handler properti (IPropertyStore) selama proses pengindeksan.

IFilter IPropertyStore
Izinkan penulisan Tidak Ya
Mencampur konten dan properti Ya Tidak
Multibahasa Ya Tidak
Memancarkan tautan Ya Tidak
MIME Ya Tidak
Batas teks Kalimat, paragraf, bab Tidak ada
Klien/ server Keduanya Klien
Implementasi Kompleks Sederhana

Handler Properti Handler properti adalah komponen yang membaca dan menulis properti untuk format file tertentu. Mereka mengakses item dan memancarkan properti untuk pengumpul dengan cara yang sama seperti yang dilakukan filter untuk konten. Handler properti lebih mudah diimplementasikan daripada filter. Jika format file berbasis teks sangat sederhana atau file diharapkan sangat kecil, penangan properti dapat memancarkan properti dan konten.

Catatan

Penangan properti bukan komponen Pencarian Windows; mereka adalah komponen yang terkait dengan format file tertentu yang dirancang untuk diakses. Untuk informasi selengkapnya tentang penangan properti dan cara mengimplementasikannya untuk format file kustom, lihat Mengembangkan Penangan Properti untuk Windows Search.

Properti Windows Search menyediakan sistem properti yang mencakup pustaka properti yang besar. Properti apa pun dapat muncul pada item apa pun seperti yang ditentukan oleh filter atau penangan properti. Jika Anda memiliki format file kustom, Anda dapat memetakan properti format file Anda ke properti sistem ini, dan Anda bisa membuat properti kustom baru. Saat filter atau penangan properti Anda memancarkan properti ini, pengumpul memperbarui indeks sehingga pengguna dapat mencari menggunakan properti Anda. Untuk informasi selengkapnya tentang membuat dan mendaftarkan properti kustom untuk format file, lihat Sistem Properti.

SystemIndex Indeks, yang disebut SystemIndex, menyimpan data terindeks dan terdiri dari penyimpanan properti dan indeks atas properti dan konten untuk properti item, dan indeks terbalik untuk konten dan properti tekstual. Setelah pengumpul memperbarui indeks, indeks dapat dikueri oleh Windows Search dan aplikasi lainnya. Untuk informasi selengkapnya tentang cara mengkueri indeks, lihat Mengkueri Indeks Secara Terprogram.

Catatan

Ingat bahwa ketika Anda mendaftarkan ulang skema, perubahan yang dilakukan pada atribut properti yang ditentukan sebelumnya mungkin tidak dihormati oleh pengindeks. Solusinya adalah membangun kembali indeks, atau memperkenalkan properti baru yang mencerminkan perubahan alih-alih memperbarui yang lama (tidak disarankan). Untuk informasi selengkapnya, lihat Catatan untuk Pelaksana di Gambaran Umum Sistem Properti.

Bagaimana Pengindeksan Dijadwalkan

Ketika Windows Search pertama kali diinstal, windows Search melakukan pengindeksan penuh cakupan perayapan, menjeda selama periode I/O tinggi dan aktivitas pengguna. Cakupan perayapan default terdiri dari lokasi pustaka default, seperti Dokumen, Musik, Gambar, dan Video. Pemberitahuan diproses bahkan sebelum perayapan awal selesai. Terkadang, pengumpul merayapi URL dari cakupan perayapan penuh. Perayapan penuh ini memastikan bahwa data dalam indeks segar. Misalnya, jika penyedia pemberitahuan gagal mengirim pemberitahuan atau jika layanan Pencarian Windows dihentikan secara tak terduga, pengumpul tidak akan memiliki pengetahuan tentang item baru atau yang diubah dan tidak akan mengindeks item ini. Ada dua jenis sumber: hanya pemberitahuan dan pemberitahuan yang diaktifkan. Di kedua sumber, pengumpul awalnya merayapi indeks. Setelah perayapan awal, sumber khusus pemberitahuan tidak akan pernah melakukan perayapan penuh lagi kecuali ada kegagalan, seperti Jurnal Perubahan USN yang bergulir. Sumber yang diaktifkan pemberitahuan melakukan perayapan bertahap saat pengindeks dimulai, tetapi kemudian mendengarkan pemberitahuan saat berjalan. NTFS dan Microsoft Outlook hanya pemberitahuan. Internet Explorer dan FAT diaktifkan pemberitahuan.

Catatan Bagi Implementer

Kualitas data dalam indeks dan efisiensi proses pengindeksan sangat bergantung pada implementasi penangan filter dan properti Anda. Karena filter dipanggil setiap kali URL mengidentifikasi format file Anda, proses pengindeksan dapat melambat secara dramatis jika filter Anda tidak efisien. Jika handler properti Anda tidak memetakan semua properti file dengan benar ke properti sistem atau tidak memancarkan properti ini dengan benar, data dalam indeks akan salah dan pencarian nanti untuk properti tersebut akan mengembalikan hasil yang salah. Jika filter atau handler properti Anda gagal, pengindeks tidak akan dapat mengindeks data.

Aplikasi dan proses selain Windows Search mengandalkan penangan protokol, filter, dan penangan properti. Implementasi Anda dapat memengaruhi aplikasi tersebut dengan cara yang mungkin tidak Anda harapkan. Panduan Pengembangan Windows Search memberikan saran tentang pilihan desain dan pada pengujian masing-masing komponen ini.

Pengindeksan, Kueri, dan Pemberitahuan di Windows Search

Apa yang Disertakan dalam Indeks

Proses Kueri di Windows Search

Proses Pemberitahuan di Windows Search

Persyaratan Pemformatan URL