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.
Topik ini diatur sebagai berikut:
Tentang kueri pada Windows Search
Kueri di Windows Search didasarkan pada empat pendekatan berikut:
- Sintaks Kueri Tingkat Lanjut (AQS)
- Sintaks kueri alami (NQS)
- Bahasa Kueri Terstruktur (SQL)
- Antarmuka kueri terstruktur
AQS adalah sintaks kueri default yang digunakan oleh Windows Search untuk mengkueri indeks dan untuk memperbaiki dan mempersempit parameter pencarian. AQS terutama berorientasi pengguna dan dapat digunakan oleh pengguna untuk membangun kueri AQS, tetapi juga dapat digunakan oleh pengembang untuk membangun kueri secara programatis. Di Windows 7, AQS kanonis diperkenalkan dan harus digunakan untuk menghasilkan kueri AQS secara terprogram. Di Windows 7 dan yang lebih baru, opsi menu pintasan dapat tersedia berdasarkan apakah kondisi AQS terpenuhi. Untuk informasi selengkapnya, lihat "Mendapatkan Perilaku Dinamis untuk Kata Kerja Statis dengan Menggunakan Sintaks Kueri Tingkat Lanjut" di Membuat Penangan Menu Konteks. Kueri AQS dapat dibatasi pada jenis file tertentu, yang dikenal sebagai jenis file. Untuk informasi selengkapnya, lihat Jenis File dan Asosiasi. Untuk dokumentasi referensi tentang properti yang relevan, lihat System.Kind, dan System.KindText.
NQS adalah sintaks kueri yang lebih santai daripada AQS, dan mirip dengan bahasa manusia. NQS dapat digunakan oleh Windows Search untuk mengkueri indeks jika NQS dipilih alih-alih default, AQS.
SQL adalah bahasa teks yang menentukan kueri. SQL umum di berbagai teknologi database. Windows Search menggunakan SQL, mengimplementasikan subsetnya, dan memperluasnya dengan menambahkan elemen ke bahasa. Windows Search SQL memperluas sintaks kueri database SQL-92 dan SQL-99 standar untuk meningkatkan kegunaannya dengan pencarian berbasis teks. Semua fitur Windows Search SQL kompatibel dengan Windows Search pada Windows XP dan Windows Server 2003, dan yang lebih baru. Untuk informasi selengkapnya tentang Windows Search SQL, lihat Mengkueri Indeks dengan Sintaks SQL Pencarian Windows, dan gambaran umum Sintaks SQL Pencarian Windows.
API kueri terstruktur dijelaskan nanti dalam topik ini. Untuk dokumentasi referensi tentang API kueri terstruktur, lihat Antarmuka Kueri. Antarmuka seperti ISearchQueryHelper membantu membangun string SQL dari serangkaian nilai input. Antarmuka ini mengonversi kueri pengguna AQS ke Windows Search SQL dan menentukan pembatasan kueri yang dapat diekspresikan dalam SQL tetapi tidak di AQS. ISearchQueryHelper juga mendapatkan string koneksi OLE DB untuk menyambungkan ke database Windows Search.
Kueri lokal dan jarak jauh
Anda dapat menjalankan kueri Anda baik secara lokal atau jarak jauh. Kueri lokal yang menggunakan klausa FROM diperlihatkan dalam contoh berikut. Kueri lokal hanya mengkueri katalog SystemIndex lokal.
FROM SystemIndex
Kueri jarak jauh yang menggunakan klausa FROM diperlihatkan dalam contoh berikut. Menambahkan ComputerName mengubah contoh sebelumnya menjadi kueri jarak jauh.
FROM [<ComputerName>.]SystemIndex
Secara default, Windows XP dan Windows Server 2003 tidak menginstal Windows Search. Hanya Windows Search 4 (WS4) yang menyediakan dukungan kueri jarak jauh. Versi Windows Desktop Search (WDS) sebelumnya, seperti 3.01 dan yang lebih lama, tidak mendukung kueri jarak jauh. Dengan Windows Explorer, Anda dapat mengkueri indeks lokal komputer jarak jauh untuk item sistem file (item yang ditangani oleh protokol "file:").
Untuk mengambil item melalui kueri jarak jauh, item harus memenuhi syarat berikut:
- Dapat diakses melalui jalur Universal Naming Convention (UNC).
- Ada di komputer jarak jauh tempat klien memiliki akses.
- Atur keamanannya untuk memungkinkan klien memiliki akses Baca.
Windows Explorer memiliki fitur untuk berbagi item, termasuk berbagi "Publik" (\\Machine\Public\...) di Network and Sharing Center, dan berbagi "Pengguna" (\\Machine\Users\...) untuk item yang dibagikan melalui Wizard Berbagi. Setelah berbagi folder, Anda dapat mengkueri indeks lokal dengan menentukan nama komputer komputer jarak jauh dalam klausa FROM, dan jalur UNC di komputer jarak jauh dalam klausa SCOPE. Kueri jarak jauh menggunakan klausa FROM dan SCOPE diperlihatkan dalam contoh berikut.
SELECT System.ItemName FROM MachineName.SystemIndex WHERE SCOPE='file://MachineName/<path>'
Contoh yang disediakan di sini menggunakan SQL.
Gambaran umum API kueri terstruktur
Kueri terstruktur menyediakan kemampuan untuk mencari informasi berdasarkan kombinasi kueri Boolean atas properti individual. Dalam topik ini kami menguraikan fungsionalitas API dan metode kueri terstruktur yang paling penting. Untuk dokumentasi referensi tentang API kueri terstruktur, lihat Antarmuka Kueri.
IQueryParser
Metode IQueryParser::Parse mengurai string input pengguna, dan menghasilkan interpretasi dalam bentuk IQuerySolution. Jika parameter pCustomProperties dari metode tersebut tidak null, maka akan berupa enumerasi dari objek IRichChunk (masing-masing untuk setiap properti kustom yang dikenali). MetodeIQueryParserlainnya mengizinkan aplikasi untuk mengatur beberapa opsi, seperti lokal, skema, pemecah kata, dan handler untuk berbagai jenis entitas bernama. IQueryParser::GetSchemaProvider mengembalikan antarmukaISchemaProvideruntuk menelusuri skema yang dimuat.
IQuerySolution : IConditionFactory
Antarmuka IQuerySolution menyediakan semua informasi tentang hasil penguraian string input. Karena IQuerySolution juga merupakan antarmuka IConditionFactory, simpul pohon kondisi tambahan dapat dibuat. Metode IQuerySolution::GetQuery menghasilkan pohon kondisi untuk interpretasi. IQuerySolution::GetQuery juga mengembalikan jenis semantik.
IConditionFactory
IConditionFactory membuat simpul pohon kondisi. Jika parameter menyederhanakan dari IConditionFactory::MakeNot adalah VARIANT_TRUE, maka ICondition yang dihasilkan disederhanakan, dan tidak harus menjadi simpul negasi. Jika parameter pSubConditions dari IConditionFactory::MakeAndOr tidak null, maka parameter tersebut harus berupa enumerasi objek ICondition, dan menjadi subpohon.IConditionFactory::MakeLeaf membangun simpul daun dengan nama properti, operasi, dan nilai yang ditentukan. String dalam parameter pValueType harus menjadi nama jenis semantik dari skema. Jika memperluas parameterVARIANT_TRUE dan propertinya virtual, pohon kondisi yang dihasilkan biasanya merupakan perbedaan yang dihasilkan dari memperluas properti ke konstituen yang ditentukan. Jika tidak null, parameter pPropertyNameTerm, pOperatorTerm, dan pValueTerm harus mengidentifikasi istilah yang menunjukkan properti, operasi, dan nilai.
ICondition : IPersistStream
Antarmuka ICondition adalah satu simpul dalam pohon kondisi. Simpul dapat menjadi node negasi, node DAN, node ATAU, atau simpul daun. Untuk node non-daun ICondition::GetSubConditions mengembalikan daftar enumerasi dari pohon bawahan. Untuk simpul daun, metode ICondition berikut mengembalikan nilai berikut:
- GetComparisonInfo mengembalikan nama properti, operasi, dan nilai.
- GetValueType mengembalikan jenis semantik nilai, yang dikhususkan dalam parameter pszValueType dari IConditionFactory::MakeLeaf.
- GetValueNormalization mengembalikan formulir string dari nilai. (Jika nilai sudah berupa string, formulir ini akan dinormalisasi sehubungan dengan kasus, aksen, dan sebagainya.)
- GetInputTerms mengembalikan informasi tentang bagian mana dari kalimat input yang menghasilkan nama properti, operasi, dan nilai.
- Clone mengembalikan salinan mendalam dari pohon kondisi.
IRichChunk
Setiap objek IRichChunk mengidentifikasi span token dan string. IRichChunk adalah antarmuka utilitas yang mewakili informasi tentang rentang (biasanya rentang token) yang diidentifikasi oleh posisi awal dan panjang. Informasi rentang ini mencakup string dan/atau VARIAN .
IConditionGenerator
AntarmukaIConditionGenerator disediakan oleh aplikasi untuk menangani pengenalan dan pembuatan pohon kondisi untuk jenis entitas bernama. Generator kondisi diberikan ke IQueryParser melalui IQueryParser::SetMultiOption. IQueryParser memanggil IConditionGenerator::Inisialisasi dengan ISchemaProvider untuk skema yang saat ini dimuat. Melakukannya memungkinkan IConditionGenerator untuk mendapatkan informasi skema apa pun yang diperlukan. Saat mengurai string input, IQueryParser memanggil IConditionGenerator::RecognizeNamedEntities metode setiap IConditionGenerator, sehingga terjadinya entitas bernama yang dikenalinya dalam string input dapat dilaporkan. IQueryParser dapat menggunakan lokal saat ini dan harus menggunakan tokenisasi input karena perlu melaporkan rentang token entitas bernama apa pun.
Ketika IQueryParser akan menghasilkan simpul daun, dan tipe semantik nilai cocok dengan tipe entitas bernama untuk IConditionGenerator, IQueryParser menggunakan IConditionGenerator::GenerateforLeaf dengan informasi untuk node yang akan dihasilkan. Jika IConditionGenerator mengembalikan S_OK, itu harus mengembalikan pohon kondisi (yang tidak harus menjadi simpul daun), dan memberi tahu IQueryParser apakah akan menekan interpretasi string alternatif yang biasanya dihasilkan sebagai langkah pencegahan.
ITokenCollection
Metode ITokenCollection::NumberOfTokens mengembalikan jumlah token.ITokenCollection::GetToken mengembalikan informasi tentang token ith. Awal dan panjang adalah posisi karakter dalam string input. Teks yang dikembalikan akan tidak bernilai null hanya jika ada teks yang menggantikan karakter dari string input. Ini digunakan, misalnya, untuk menggantikan tanda hubung dalam string input dengan NOT ketika tanda hubung tersebut berada dalam konteks di mana seharusnya ditafsirkan sebagai negasi.
INamedEntityCollector
IConditionGenerator memanggil INamedEntityCollector::Tambahkan untuk setiap entitas bernama yang dikenalinya. Rentangnya adalah rentang token. Seharusnya selalu demikian bahwa beginSpan? beginActual<endActual ? endSpan. beginSpan dan endSpan mungkin berbeda dari beginActual dan endActual jika entitas bernama dimulai dan/atau berakhir dengan token yang tidak signifikan secara semantik seperti tanda kutip (namun demikian dicakup oleh entitas bernama). Nilai harus dinyatakan sebagai string dan kemudian akan muncul dalam panggilan ke IConditionGenerator::GenerateForLeaf.
ISchemaProvider
Antarmuka ISchemaProvider dapat digunakan untuk menelusuri skema yang dimuat untuk entitas (jenis) dan relasi (properti). Berikut fungsi masing-masing metode:
- Entitas mengembalikan enumerasi setiap entitas (IEntity) dalam skema.
- RootEntity mengembalikan entitas akar skema. Untuk skema datar, jenis utama dari setiap IQuerySolution dikembalikan.
- GetEntity menemukan entitas berdasarkan nama dan mengembalikan S_FALSE jika tidak ada entitas tersebut dalam skema.
- MetaData mengembalikan enumerasi antarmukaIMetaData.
IEntity
Antarmuka IEntity adalah entitas skema yang mewakili jenis yang memiliki nama, memiliki sejumlah hubungan bernama dengan jenis lain (properti), dan berasal dari entitas dasar. Berikut adalah apa yang dilakukan oleh masing-masing metodenya:
- IEntity::Relationships mengembalikan penomoran dari objek IRelationship, satu untuk setiap hubungan keluar dari jenis ini. Setiap hubungan keluar dari sebuah entitas memiliki nama.
- IEntity::GetRelationship menemukan hubungan berdasarkan nama, dan mengembalikan S_FALSE jika tidak ada hubungan seperti itu untuk entitas ini.
- IEntity::MetaData mengembalikan enumerasi antarmukaIMetaData, satu untuk setiap pasangan metadata entitas ini.
- IEntity::DefaultPhrase mengembalikan frasa default untuk memfasilitasi menghasilkan penyusunan kembali AQS atau NQS dari pohon kondisi.
IRelationship
AntarmukaIRelationshipmewakili hubungan antara dua entitas: sumber dan tujuan. Berikut fungsi masing-masing metode:
- IRelationship::IsReal melaporkan apakah hubungan itu nyata. Misalnya, jika entitas A berasal dari entitas B dan mewarisi hubungan bernama R darinya, A mungkin masih memiliki hubungannya sendiri bernama R. Namun, hubungan antara A dan R harus memiliki jenis tujuan yang sama dengan B, dan satu-satunya alasan untuk itu ada adalah untuk menyimpan metadata khusus untuk B. Hubungan B seperti itu dikatakan tidak nyata.
- IRelationship::Medadata mengembalikan enumerasi dari antarmuka IMetaData, satu untuk setiap pasangan metadata dari entitas ini.
- IRelationship::DefaultPhrase mengembalikan frasa bawaan yang akan digunakan untuk hubungan ini dalam pengulangan. Setiap hubungan memiliki frasa default yang menandainya untuk memfasilitasi pembuatan atau pernyataan kembali AQS atau NQS dari pohon kondisi.
IMetaData
Metadata adalah pasangan kunci-nilai yang masing-masing terkait dengan entitas, hubungan, atau seluruh skema. Karena kunci belum tentu unik, kumpulan metadata dapat dianggap sebagai multi-peta. IMetaData::GetData dipanggil untuk mengambil kunci dan nilai untuk pasangan metatdata.
Skenario kueri
Skenario berikut menjelaskan penggunaan API kueri terstruktur di Windows Search dalam skenario kueri umum, seperti membuat pohon kondisi dan mengkueri indeks.
Ekstraksi kondisi dan penguraian kueri
Saat kueri dibuat, cakupannya ditentukan dengan memberi tahu sistem tempat mencari. Ini membatasi hasil pencarian. Setelah cakupan ditentukan, filter diterapkan, dan set filter dikembalikan. Hasil pencarian dibatasi dengan membangun pohon kondisi dengan simpul daun, mirip dengan grafik. Kondisi tersebut kemudian diekstraksi. Pohon kondisi adalah kombinasi Boolean (AND, OR, NOT) dari kondisi-kondisi dasar, yang masing-masing berkaitan dengan properti, melalui sebuah operasi dengan nilai tertentu. Simpul daun mewakili pembatasan pada satu properti terhadap nilai melalui beberapa operasi.
Pembatasan filter memerlukan ekspresi logis yang menjelaskan pembatasan. Menentukan ekspresi ini dimulai dengan antarmuka ICondition, yang digunakan untuk membuat satu simpul di pohon kondisi. Karena hanya ada satu kondisi dalam contoh berikut, pohon tidak berubah.
[
object,
uuid(0FC988D4-C935-4b97-A973-46282EA175C8),
pointer_default(unique)
]
interface ICondition : IPersistStream
{
HRESULT GetConditionType([out, retval] CONDITION_TYPE* pNodeType);
HRESULT GetSubConditions([in] REFIID riid, [out, retval, iid_is(riid)] void** ppv);
[local] HRESULT GetComparisonInfo([out, annotation("__deref_opt_out")] LPWSTR *ppszPropertyName, [out, annotation("__out_opt")] CONDITION_OPERATION *pOperation, [out, annotation("__out_opt")] PROPVARIANT *pValue);
HRESULT GetValueType([out, retval] LPWSTR* ppszValueTypeName);
HRESULT GetValueNormalization([out, retval] LPWSTR* ppszNormalization);
[local] HRESULT GetInputTerms([out, annotation("__out_opt")] IRichChunk** ppPropertyTerm, [out, annotation("__out_opt")] IRichChunk** ppOperationTerm, [out, annotation("__out_opt")] IRichChunk** ppValueTerm);
HRESULT Clone([out, retval] ICondition** ppc);
};
Jika ada lebih dari satu kondisi filter, maka DAN dan operator Boolean lainnya digunakan untuk mencapai satu pohon. Pohon-AND dan pohon-OR mewakili konjungsi dan disjungsi dari subtree mereka. Pohon NOT merepresentasikan negasi dari satu-satunya anak cabangnya. AQS menyediakan pendekatan teks untuk mencapai ekspresi logis dengan operator Boolean, dan sering kali lebih sederhana.
Dalam contoh berikutnya kita mengonversi pohon kondisi (ICondition) menjadi bentuk visual. Pengurai kueri, menggunakan antarmukaIQueryParser, mengonversiICondition menjadi string kueri berformat teks kaya (RTF). MetodeIQueryParser::RestateToString mengembalikan teks kueri, sementara metode IQueryParser::P arse menghasilkan antarmukaIQuerySolution. Contoh berikut menunjukkan cara melakukan semua itu.
[
object,
uuid(2EBDEE67-3505-43f8-9946-EA44ABC8E5B0),
pointer_default(unique)
]
interface IQueryParser : IUnknown
{
HRESULT Parse([in] LPCWSTR pszInputString, [in] IEnumUnknown* pCustomProperties, [out, retval] IQuerySolution** ppSolution);
HRESULT SetOption([in] STRUCTURED_QUERY_SINGLE_OPTION option, [in] PROPVARIANT const* pOptionValue);
HRESULT GetOption([in] STRUCTURED_QUERY_SINGLE_OPTION option, [out, retval] PROPVARIANT* pOptionValue);
HRESULT SetMultiOption([in] STRUCTURED_QUERY_MULTIOPTION option, [in] LPCWSTR pszOptionKey, [in] PROPVARIANT const* pOptionValue);
HRESULT GetSchemaProvider([out, retval] ISchemaProvider** ppSchemaProvider);
HRESULT RestateToString([in] ICondition* pCondition, [in] BOOL fUseEnglish, [out] LPWSTR* ppszQueryString);
HRESULT ParsePropertyValue([in] LPCWSTR pszPropertyName, [in] LPCWSTR pszInputString, [out, retval] IQuerySolution** ppSolution);
HRESULT RestatePropertyValueToString([in] ICondition* pCondition, [in] BOOL fUseEnglish, [out] LPWSTR* ppszPropertyName, [out] LPWSTR* ppszQueryString);
};
Input utama IQueryParser::Parse adalah string input pengguna yang akan diurai, tetapi aplikasi juga dapat menginformasikan parser kueri dari properti apa pun yang telah dikenali dalam input (dari sintaks khusus aplikasi tersebut). Output dari IQueryParser::Parse adalah IQuerySolution, yang menyediakan semua informasi yang berkaitan dengan pemanggilan penguraian tersebut. Ada metode untuk mendapatkan string input, bagaimana string input ditokenisasi, kesalahan penguraian apa pun, dan kueri yang diurai sebagai pohon kondisi, yang diwakili oleh ICondition. Contoh berikut menunjukkan ...
[
object,
uuid(D6EBC66B-8921-4193-AFDD-A1789FB7FF57),
pointer_default(unique)
]
interface IQuerySolution : IConditionFactory
{
[local] HRESULT GetQuery([out, annotation("__out_opt")] ICondition** ppQueryNode, [out, annotation("__out_opt")] IEntity** ppMainType);
HRESULT GetErrors([in] REFIID riid, [out, retval, iid_is(riid)] void** ppParseErrors);
[local] HRESULT GetLexicalData([out, annotation("__deref_opt_out")] LPWSTR* ppszInputString, [out, annotation("__out_opt")] ITokenCollection** ppTokens, [out, annotation("__out_opt")] LCID* pLocale, [out, annotation("__out_opt")] IUnknown** ppWordBreaker);
}
Dalam contoh sebelumnya, IQuerySolution::GetQuery dapat memperoleh informasi apa pun tentang kueri termasuk teks asli, token yang terdiri dari teks, atau pohon kondisi. Contoh kemungkinan nilai kueri yang dikembalikan tercantum dalam tabel berikut.
| Contoh nilai kueri yang dikembalikan | Deskripsi |
|---|---|
author:relja OR author:tyler |
Teks kueri yang dikembalikan oleh IQueryParser::RestateToString |
?author?, ?:?, ?relja?, ?OR?, ?author?, ?:?, ?tyler? |
Rincian terperinci tentang token |
pohon kondisi yang belum terselesaikan |
Pohon kondisi yang belum terselesaikan |
Pohon kondisi awal yang dikembalikan belum terselesaikan. Dalam pohon kondisi yang belum terselesaikan, referensi tanggal dan waktu, seperti date:yesterday, tidak dikonversi ke waktu absolut. Selain itu, fitur virtual tidak diperluas. Properti virtual adalah properti yang bertindak sebagai agregat dari beberapa properti.
Misalnya, kueri kind:email from:reljai menghasilkan pohon kondisi yang belum terselesaikan dan teratasi berikut ini. Pohon kondisi yang belum terselesaikan berada di sebelah kiri, dan pohon kondisi yang diselesaikan ada di sebelah kanan.
Pohon yang diselesaikan dapat diperoleh dengan memanggil IConditionFactory::Resolve. Namun, melewati SQRO_DONT_RESOLVE_DATETIME meninggalkan tanggal dan waktu yang belum terselesaikan. Ada keuntungan dari pohon kondisi yang belum terselesaikan, karena pohon kondisi yang tidak terselesaikan berisi informasi tentang kueri. Setiap simpul daun menunjuk ke token yang dikembalikan oleh IQuerySolution::GetLexicalData, yang sesuai dengan properti, operator, dan nilai saat menggunakan antarmuka IRichChunk. Contoh berikut menunjukkan ...
interface ITokenCollection : IUnknown
{
HRESULT NumberOfTokens(ULONG* pCount);
HRESULT GetToken([in] ULONG i, [out, annotation("__out_opt")] ULONG* pBegin, [out, annotation("__out_opt")] ULONG* pLength, [out, annotation("__deref_opt_out")] LPWSTR* ppsz);
};
ICondition:: GetInputTerms([out, annotation("__out_opt")]
IRichChunk** ppPropertyTerm, [out, annotation("__out_opt")]
IRichChunk** ppOperationTerm, [out, annotation("__out_opt")]
IRichChunk** ppValueTerm);
interface IRichChunk : IUnknown
{
HRESULT GetData([out, annotation("__out_opt")] ULONG* pFirstPos, [out, annotation("__out_opt")] ULONG* pLength, [out, annotation("__deref_opt_out")] LPWSTR* ppsz, [out, annotation("__out_opt")] PROPVARIANT* pValue);
}
Mengkueri indeks
Ada beberapa pendekatan untuk mengkueri indeks. Beberapa didasarkan pada SQL dan lainnya didasarkan pada AQS. Anda juga dapat mengkueri indeks Windows Search secara terprogram dengan menggunakan antarmuka kueri . Ada tiga antarmuka yang khusus untuk mengkueri indeks: ISearchQueryHelper, IRowsetPrioritization, dan IRowsetEvents. Untuk informasi konseptual, lihat Mengkueri Indeks secara terprogram.
Anda dapat mengembangkan kelas komponen atau pembantu untuk mengkueri indeks dengan menggunakan antarmukaISearchQueryHelper. Antarmuka ini diimplementasikan sebagai kelas pembantu untuk ISearchCatalogManager (dan ISearchCatalogManager2), dan diperoleh dengan memanggil ISearchCatalogManager::GetQueryHelper. Untuk informasi konseptual, lihat Mengkueri Indeks dengan ISearchQueryHelper.
ISearchQueryHelper mengizinkan Anda untuk:
- Dapatkan string koneksi OLE DB untuk menyambungkan ke database Windows Search.
- Mengonversi kueri pengguna AQS ke Windows Search SQL.
- Tentukan pembatasan kueri yang dapat diekspresikan di SQL tetapi tidak di AQS.
Prioritas pengindeksan dan peristiwa set baris didukung di Windows 7 dan yang lebih baru. Dengan IRowsetPrioritization ada tumpukan prioritas yang memungkinkan klien untuk meminta agar cakupan yang digunakan dalam kueri tertentu diberikan lebih tinggi dari prioritas normal. IRowsetEvents menyediakan pemberitahuan perubahan pada item dalam set baris, termasuk penambahan item baru, penghapusan item, dan modifikasi data item. Menggunakan pemberitahuan kejadian pada himpunan baris memastikan bahwa hasil untuk kueri yang ada sebaru mungkin. Untuk informasi konseptual, lihat Prioritas Pengindeksan dan Peristiwa Set Baris di Windows 7.
Topik terkait
-
Proses Pemberitahuan di Pencarian Windows
pohon kondisi yang belum terselesaikan