Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Beberapa aplikasi menyimpan item mereka dalam database atau jenis file kustom. Meskipun Windows Search dapat mengindeks nama dan properti file, Windows tidak memiliki pengetahuan tentang isi file. Akibatnya, item tersebut tidak dapat diindeks atau diekspos di Windows Shell. Dengan membuat handler protokol, Anda dapat membuat item ini tersedia untuk pengindeksan. Anda juga dapat mengindeks format file gabungan seperti file .zip.
Topik ini diatur sebagai berikut:
- Pengindeksan Penyimpanan Data dengan Handler Protokol
- Mengindeks Format File Campuran
- Topik terkait
Pengindeksan penyimpanan data dengan pengelola protokol
Ketika pengguna perlu mencari database warisan, penyimpanan email, atau struktur data lain yang tidak didukung oleh Windows Search, Anda harus terlebih dahulu menentukan apakah handler protokol sudah ada untuk penyimpanan data tersebut, mungkin untuk digunakan dengan aplikasi lain seperti SharePoint Server. Jika demikian, Anda dapat menginstal handler protokol tersebut pada sistem. Penangan protokol Windows Search menggunakan spesifikasi desain yang mirip dengan SharePoint Server, dan mereka sering dapat digunakan secara bergantian.
Untuk informasi selengkapnya tentang penyebaran Search Server 2008 dengan Office SharePoint Server 2007, lihat Federated Search [Search Server 2008].
Penyimpanan data Shell
Sebelum pengembang pihak ketiga dari format file dan penyimpanan data baru bisa mendapatkan format dan penyimpanan tersebut untuk muncul dalam hasil kueri di Windows Explorer, pengembang harus menerapkan sumber data Shell. Sumber data Shell adalah komponen yang digunakan untuk memperluas namespace Shell dan mengekspos item di penyimpanan data. Penyimpanan data adalah repositori data. Penyimpanan data dapat diekspos ke model pemrograman Shell sebagai kontainer yang menggunakan sumber data Shell. Item dalam penyimpanan data dapat diindeks oleh sistem Windows Search menggunakan penangan protokol. Handler protokol menerapkan protokol untuk mengakses sumber konten dalam format aslinya. Antarmuka ISearchProtocol dan ISearchProtocol2 digunakan untuk menerapkan pengelola protokol kustom guna memperluas sumber data yang dapat diindeks.
Jika Anda ingin hasil kueri muncul di Windows Explorer, Anda harus menerapkan sumber data Shell sebelum Anda bisa membuat handler protokol untuk memperluas indeks. Namun, jika semua kueri akan terprogram (misalnya melalui OLE DB) dan ditafsirkan oleh kode aplikasi bukan oleh Shell, namespace Shell meskipun masih lebih disukai tidak sepenuhnya diperlukan.
Nota
Sumber data Shell terkadang dikenal sebagai ekstensi namespace Shell. Handler terkadang dikenal sebagai ekstensi Shell atau handler ekstensi Shell.
Jika Anda ingin pengguna melihat hasil pencarian mereka dari dalam Windows Explorer, maka Anda harus membuat handler protokol dan satu atau beberapa add-in berikut:
- Pengelola menu pintasan
- Handler ikon
- Beberapa jenis pengelola file yang lain
Untuk daftar handler yang diidentifikasi oleh skenario pengembangan yang ingin Anda capai, lihat "Ikhtisar Handler" di Windows Search sebagai Platform Pengembangan. Untuk informasi tentang membuat handler, lihat Mendaftarkan Ekstensi Shell, Menu Konteks, dan Pengelola Jenis File.
Pengendali Protokol
Jika penyimpanan data juga merupakan kontainer (seperti folder sistem file), Anda harus menerapkan filter untuk menghitung URL dalam kontainer. Jika penyimpanan data berisi tipe data atau file selain salah satu dari 200 jenis file yang didukung oleh Windows Search, Anda harus menerapkan filter untuk mengakses dan mengindeks konten item di penyimpanan. Windows Search menggunakan handler protokol dan teknologi IFilter yang mirip dengan yang digunakan oleh SharePoint Server. Jika Anda sudah memiliki filter untuk penyimpanan tertentu dan jenis file yang diinstal pada sistem yang sedang diindeks, Windows Search mungkin dapat menggunakan antarmuka yang ada untuk mengindeks data ini.
Untuk gambaran umum proses pengindeksan, lihat Proses Pengindeksan. Untuk informasi konseptual tentang penanganan filter, lihat Mengembangkan Penanganan Filter.
Filter-filter dan penanganan protokol
Penangan protokol memberi pengindeks Windows Search akses ke penyimpanan data, memungkinkan pengindeks untuk merayapi simpul penyimpanan data dan mengekstrak informasi yang relevan untuk diindeks. Windows Search, misalnya, dilengkapi dengan handler protokol untuk penyimpanan sistem file dan untuk beberapa versi penyimpanan data Microsoft Outlook. Saat mengindeks email Outlook, handler protokol merayapi semua pesan dalam sekumpulan folder Outlook dan mengekstrak informasi dari setiap pesan dan lampiran. Informasi ini diteruskan ke pengindeks untuk dimasukkan dalam katalog Windows Search.
Untuk gambaran umum Pengelola Katalog dan Pengelola Cakupan Perayapan (CSM), lihat Menggunakan Pengelola Katalog dan Menggunakan Pengelola Cakupan Perayapan.
Mengindeks format file yang kompleks
Format file gabungan dapat diindeks sehingga item individual dalam file dapat dikembalikan sebagai hasil individual. Format file gabungan seperti file terkompresi dengan ekstensi nama file .zip pada dasarnya adalah penyimpanan data dan dapat diperlakukan seperti untuk tujuan pengindeksan. Contoh berikut menampilkan file .zip di namespace sistem file (FILE://c:/test/test.zip) di mana ada subfolder dan item individual.
Test.zip
|-folder1
| |-folder2
| |- FileX.txt
|- FileY.doc
Pengendali protokol FILE menemukan saat FILE://c:/test/test.zip berubah dengan memantau log perubahan sistem file, serta akan memanggil IFilter yang terdaftar untuk file .zip pada file itu ketika file berubah, tetapi tidak memiliki pengetahuan tentang struktur internal dari file .zip itu sendiri.
Anda harus memberi tahu pengindeks bahwa format file gabungan adalah penyimpanan data. Anda perlu melakukannya agar item individual diindeks dan diambil sebagai entitas unik. Setelah Anda menerapkan sumber data Shell dan melakukan langkah-langkah berikut, Anda akan memiliki handler protokol yang dapat memproses dan mengekspos data dari format file gabungan (file .zip) sebagai item individual.
Untuk memberi tahu pengindeks bahwa file gabungan adalah penyimpanan data:
Buat handler protokol (menggunakan ISearchProtocol atau ISearchProtocol2) untuk file .zip yang memiliki kemampuan mengikat file sumber. Untuk informasi selengkapnya, lihat Menginstal dan Mendaftarkan Handler Protokol.
Misalnya, Anda dapat menggunakan jalur escape ke file .zip sebagai nama folder akar lalu menggunakan sintaks hierarki seperti format file lainnya.
.zip:///escapedPathTo.zipFile/.zipfolder/.../.zipfileMenggunakan data sampel di atas untuk c:\test\test.zip, URL uniknya adalah sebagai berikut. Dengan URL ini, handler protokol memiliki informasi yang diperlukan untuk mengikat file .zip dan menghitung URL anak termasuk file dalam sehingga dapat diikat dan diindeks oleh filter .doc dan .txt.
.zip:///FILE:%2f%2f%2fc:%2ftest%2ftest.zip/ .zip:///FILE:%2f%2f%2fc:%2ftest%2ftest.zip/FileY.Doc .zip:///FILE:%2f%2f%2fc:%2ftest%2ftest.zip/folder1 .zip:///FILE:%2f%2f%2fc:%2ftest%2ftest.zip/folder1/folder2 .zip:///FILE:%2f%2f%2fc:%2ftest%2ftest.zip/folder1/folder2/FileX.txtPastikan bahwa handler protokol Anda memenuhi dua kondisi berikut:
- URL akar untuk file .zip harus menghasilkan PKEY_Search_IsClosedDirectory (System.Search.IsClosedDirectory) pada URL yang merupakan URL file root untuk .zip. Misalnya, .zip:///FILE:%2f%2f%2fc:%2ftest%2ftest.zip/ seharusnya menghasilkan IsClosedDirectory = TRUE. Ini memberi tahu pengindeks bahwa jika tanggal pada URL ini tidak berubah, pengindeks tidak perlu memproses URL anak mana pun.
- Setiap URL anak untuk URL tersebut harus memunculkan PKEY_Search_IsFullyContained (System.Search.IsFullyContained) pada URL anak dari URL .zip root. Biasanya di akhir perayapan bertahap, pengindeks memperlakukan semua URL yang tidak dilihat sebagai item yang harus dihapus. Tetapi file .zip akar tidak boleh memproses URL akar karena tidak ada yang berubah. Memancarkan properti ini sebagai TRUE memberi tahu pengindeks bahwa jika URL ini belum diproses di akhir perayapan bertahap, maka tidak boleh dihapus. Ini hanya akan dihapus jika item akar telah berubah dan tidak dikunjungi.
Windows Search memerlukan halaman mulai untuk protokol untuk mengetahui URL apa yang akan dirayapi secara bertahap dan URL mana yang harus diabaikan ketika ditemukan. Tetapi kami tidak dapat memulai dengan URL untuk setiap file .zip, karena kami tidak tahu di mana setiap file .zip berada. Oleh karena itu, URL halaman awal handler protokol .zip harus dapat mengidentifikasi segala sesuatu di akar dari jalur yang diubah-urainya dari semua file .zip. File .zip tersebut belum tentu ada di FILE: namespace dan bisa menjadi URL jenis MAPI yang menunjuk ke file .zip sebagai lampiran, misalnya.
Untuk mendaftarkan halaman utama sebagai halaman awal:
Daftarkan akar seperti .zip:/// sebagai halaman awal sehingga semua file .zip mulai di sana secara efektif. Saat memproses root .zip: URL, handler protokol Anda harus menyusun daftar URL turunan yang akan dihasilkan dengan melakukan kueri pada Windows Search untuk semua URL dengan System.FileExtension = ".zip".
Lepaskan URL tersebut untuk menghapus garis miring dan mengembalikannya sebagai URL anak. Contoh kueri untuk mengambil tipe yang Anda inginkan mungkin terlihat sebagai berikut.
SELECT system.itemurl, System.DateModified FROM SystemIndex WHERE System.FileExtension='.zip' OR System.MimeType='mimetypefor.zip'Ketika Windows Search secara berkala melakukan perayapan bertahap pada URL akar .zip:/// Anda, Anda harus mengembalikan daftar URL yang sudah dikelola Windows Search yang .zip adalah URL. Jika penghapusan ditemukan di penyimpanan asli tempat file .zip disimpan, itu tidak muncul di enumerasi Anda, dan cabang pohon di .zip dihapus.
Untuk mengikat data .zip untuk handler protokol lain, idealnya Anda harus melalui IShellFolder agar URL tersebut terikat ke penyimpanan objek, dan tidak menganggapnya selalu merupakan file. Melakukannya memberi Anda fleksibilitas untuk mengelola lampiran dalam penyimpanan email, misalnya.
Saat menghasilkan URL turunan untuk setiap file .zip, Anda harus menggunakan PKEY_Search_UrlToIndexWithModificationTime (System.Search.UrlToIndexWithModificationTime) untuk meneruskan PKEY_DateModified (System.DateModified) dari file .zip yang sebenarnya sehingga pengindeks hanya akan merayapi file .zip jika dan hanya jika telah berubah.
Agar URL .zip Anda diindeks segera setelah dibuat atau dimodifikasi, dan tidak perlu menunggu perayapan bertahap untuk menemukan status baru mereka, Anda dapat memantau sendiri sistem file untuk perubahan file .zip. Namun, pendekatan seperti itu tidak akan berfungsi untuk penyimpanan data lain seperti MAPI.
Agar url .zip Anda diindeks saat dibuat atau dimodifikasi:
- Buat filter (dan implementasi antarmuka IFilter) untuk jenis file .zip. Untuk informasi selengkapnya, lihat Mengembangkan Pengelola Properti untuk Windows Search.
- Setiap kali implementasi IFilter Anda dipanggil, itu karena URL tersebut telah ditemukan atau diubah. Kemudian, buat peristiwa untuk URL .zip yang sesuai dengan URL sumber, melalui antarmuka IGatherNotifyInline . Melakukannya memberi Anda kemampuan untuk segera memberi tahu pengindeks bahwa ada data baru yang akan diindeks tanpa harus menunggu perayapan bertahap.
Topik terkait
-
Sampel Kode : Ekstensi Shell untuk Handler Protokol