Filter handler yang dikirim dengan Windows

Microsoft menyediakan beberapa filter standar dengan Windows Search. Klien memanggil handler filter ini (yang merupakan implementasi antarmukaIFilter) untuk mengekstrak teks dan properti dari dokumen.

Topik ini diatur sebagai berikut:

Catatan implementasi Windows Search

Di Windows 7 dan yang lebih baru, filter yang ditulis dalam kode terkelola secara eksplisit diblokir. Filter HARUS ditulis dalam kode asli karena potensi masalah penerapan versi CLR dengan proses yang dijalankan beberapa add-in.

Implementasi Windows 7 dan 10

Di Windows 7 dan yang lebih baru, ada perilaku baru yang terjadi saat mendaftarkan handler filter, handler properti, atau ekstensi baru. Ketika handler properti baru dan/atau handler filter diinstal, file dengan ekstensi yang sesuai secara otomatis diindeks ulang.

Di Windows 7 dan yang lebih baru, kami sarankan Anda menginstal handler filter bersama dengan handler properti yang sesuai, dan Anda mendaftarkan handler filter sebelum handler properti. Pendaftaran handler properti memulai pengindeksan ulang segera dari file yang diindeks sebelumnya tanpa terlebih dahulu memerlukan mulai ulang, dan memanfaatkan handler filter yang terdaftar sebelumnya untuk tujuan pengindeksan konten.

Jika hanya handler filter yang diinstal tanpa handler properti yang sesuai, maka pengindeksan ulang otomatis terjadi baik setelah menghidupkan ulang layanan pengindeksan, atau memulai ulang sistem.

Untuk bendera deskripsi properti khusus untuk Windows 7, lihat topik referensi berikut: GETPROPERTYSTOREFLAGS, PROPDESC_COLUMNINDEX_TYPE dan PROPDESC_SEARCHINFO_FLAGS.

Implementasi Windows Vista

Di Windows Vista dan yang lebih lama, menginstalIFilteratau handler properti tidak memulai pengindeksan ulang item yang ada kecuali vendor perangkat lunak independen (ISV) secara eksplisit memanggil pembangunan ulang atau pengindeksan ulang URL yang cocok.

Ada dua perbedaan utama antara aplikasi warisan seperti Layanan Pengindeksan dan aplikasi yang lebih baru seperti Windows Search yang harus Anda waspadai saat menerapkan filter:

Pertama, Windows Vista dan Windows Search 3.0 dan yang lebih baru mengharuskan Anda menggunakan IPersistStream karena alasan berikut:

  • Untuk memastikan performa dan kompatibilitas di masa mendatang.
  • Untuk membantu meningkatkan keamanan. Filter yang diterapkan dengan IPersistStream lebih aman karena konteks di mana filter berjalan tidak memerlukan hak untuk membuka file pada disk atau melalui jaringan.

Meskipun Windows Search hanya menggunakan IPersistStream, Anda juga dapat menyertakan IPersistFile Interface dan/atau IPersistStorage Interface implementasi dalam filter Anda untuk kompatibilitas mundur.

Perbedaan utama kedua adalah Windows Vista dan Windows Search 3.0 dan yang lebih baru memiliki Sistem Properti baru yang menggunakan penangan properti untuk menghitung properti item.

Namun, ada kalanya Anda perlu menerapkan filter yang menangani konten dan properti untuk:

  • Mendukung implementasi MSSearch warisan.
  • Melintasi tautan.
  • Pertahankan informasi bahasa.
  • Memfilter item yang disematkan secara rekursif.

Dalam situasi ini, Anda memerlukan implementasi filter penuh, termasuk metode IFilter::GetValue untuk mengakses nilai properti.

Implementasi warisan

Seperti disebutkan sebelumnya, Windows Vista dan Windows Search menyertakan sistem properti baru yang merangkum properti item yang terpisah dari isi item. Sistem properti ini tidak ada di versi Microsoft Windows Desktop Search (WDS) 2.x yang lebih lama. Jika filter Anda harus mendukung aplikasi lain seperti yang dijelaskan di atas, filter mungkin perlu menangani konten dan properti.

Untuk informasi selengkapnya tentang mengembangkan filter yang kompatibel, lihat topik berikut, IFilter (untuk aplikasi warisan), dan Mengembangkan Add-in Filter (untuk aplikasi warisan).

Filter Pencarian Windows

Microsoft menyediakan beberapa filter standar dengan Windows Search. Konten IFilter DLL dirangkum dalam tabel berikut. Mengklik nama handler filter akan membawa Anda ke deskripsi untuk implementasi IFilter tersebut.

Penangan filter File difilter IFilter DLL
Handler Filter MIME Ekstensi Surat Internet Multiguna (MIME) mimefilt.dll
Handler Filter HTML HTML 3.0 atau yang lebih lama nlhtml.dll
Handler Filter Dokumen Microsoft Word, Excel, PowerPoint offfilt.dll
Handler Filter Teks Biasa File teks biasa - IFilter Default query.dll
Penangan Filter Biner atau Null File biner - IFilter Null query.dll

Handler filter MIME

Handler filter MIME (dalam mimefilt.dll) mengekstrak informasi teks dan properti dari file dengan ekstensi .eml, .mht dan .mhtml.

Handler filter HTML

Handler filter HTML (dalam nlhtml.dll) mengekstrak informasi teks dan properti dari kelas "htmlfiles" sehingga dapat diindeks oleh Windows Search. Untuk deskripsi hubungan antara IFilter dan jenis file, lihat "Menemukan DLL IFilter untuk File" di Mendaftarkan Penangan Filter.

Anda dapat menggunakan fitur tag META dokumen HTML untuk menyampaikan permintaan penanganan khusus ke HTML IFilter. META tag terjadi di dekat awal file html dalam tag HEAD ... /HEAD, seperti yang diilustrasikan dalam contoh berikut.

   <head>
     <META NAME="DESCRIPTION"
           CONTENT="This text appears on the results page as the document's summary.">
   </head>

Beberapa tag META HTML secara otomatis dipetakan ke set properti terkenal dan nilai ID properti (pengidentifikasi properti (PID)) sehingga kueri pada properti ini akan mencari konten yang dipetakan. Beberapa contoh tercantum dalam tabel berikut. Untuk daftar properti sistem yang bisa Anda gunakan untuk format file Anda, lihat Properti System-Defined untuk Format File Kustom.

Contoh properti Dipetakan ke
meta name="author" content="ruth" Properti pembuat dalam kumpulan properti Informasi Ringkasan.
meta name="subject" content="word processing" Properti subjek dalam kumpulan properti Informasi Ringkasan.
meta name="keywords" content="fonts, serif" Properti kata kunci dalam kumpulan properti Informasi Ringkasan.
meta name="ms.category" content="fiction" Properti kategori dalam kumpulan properti Informasi Ringkasan dokumen.

Beberapa fitur HTML IFilter tercantum dalam tabel berikut.

Tugas Perbuatan Contoh
Membuat abstrak khusus dari file Gunakan tag META NAME="DESCRIPTION"... untuk menginstruksikanIFilteruntuk menggunakan string mengikuti kata kunci CONTENT sebagai abstrak dokumen.

Catatan:
Proses pemfilteran dapat menghasilkan abstrak untuk setiap file yang difilter, yang defaultnya menjadi sekumpulan karakter di awal file.


<head>
  <META NAME="DESCRIPTION" CONTENT="This text will appear on the results page as the document's summary.">
</head>
 
Mencegah file individual difilter Tambahkan tag meta name ke file.
  <meta name="robots" content="noindex">
Mengatur kode bahasa untuk file (untuk memastikan sistem memilih pemecah kata bahasa yang benar dan file kata kebisingan) Tambahkan tag meta name berikut ke file, di mana bidang konten menentukan kode bahasa yang sesuai (baik dalam karakter atau dengan menggunakan nilai lokal).
<meta name="ms.locale" content="EN">
<meta name="ms.locale" content=1033>

Penangan filter dokumen

Penangan filter Dokumen (dalam offilt.dll) memfilter file untuk beberapa ekstensi dokumen di Microsoft Office. Ini termasuk file dengan ekstensi .doc, .mdb, .ppt, dan .xlt, misalnya.

Penangan filter teks biasa

Untuk file teks biasa, Windows Search menggunakan penangan filter teks, yang memfilter properti sistem (seperti nama file) dan konten file. Ketika tipe file tidak memiliki asosiasiIFilterdalam registri, Windows Search hanya mengindeks properti Shell untuk file tersebut. Namun, pengguna dapat menggunakan Opsi Tingkat Lanjut di panel kontrol Opsi Pengindeksan untuk Properti Indeks atau Properti Indeks dan Konten File.

cuplikan layar memperlihatkan kotak dialog opsi tingkat lanjut

Jika pengguna memilih opsi ini untuk jenis file tanpa terkait IFilter, penangan filter teks digunakan untuk mengekstrak konten file. Handler filter teks tidak "memahami" format dokumen apa pun; saat memfilter konten file, file tersebut memperlakukan file sebagai urutan karakter. Ini memeriksa tanda urutan byte Unicode di awal file.

Penangan filter biner atau null

Ketika file biner terdaftar ditemukan, handler filter null digunakan. Handler filter null hanya mengambil properti sistem. Konten file biner tidak difilter. Contoh properti sistem adalah FileName, LastWriteTime, FileSize, dan atribut .

Sumber daya tambahan

Mengembangkan handler filter

Tentang Penangan Filter di Windows Search

Praktik Terbaik untuk Membuat Handler Filter di Windows Search

Mengembalikan Properti dari Handler Filter

Menerapkan Handler Filter di Windows Search

Mendaftarkan Handler Filter

Handler Filter Pengujian