Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Dizini sorgulamak için ISearchQueryHelper arabirimini kullanabilirsiniz. Bu arabirim, hem ISearchCatalogManager hem de ISearchCatalogManager2yardımcı sınıfı olarak uygulanmakta ve ISearchCatalogManager::GetQueryHelperçağrılarak elde edilmektedir. Bu arabirim şu işlemleri gerçekleştirmenize izin verir:
- Windows Search veritabanına bağlanmak için bir OLE DB bağlantı dizesi alın.
- Gelişmiş Sorgu Söz Dizimi (AQS) kullanıcı sorgularını Windows Search Yapılandırılmış Sorgu Dili'ne (SQL) dönüştürün.
- SQL'de ifade edilebilecek ancak AQS'de ifade edilmeyecek sorgu kısıtlamalarını belirtin.
Bu konu aşağıdaki gibi düzenlenmiştir:
- ISearchQueryHelper ile Çalışmaya Başlama
- Kullanıcı Sorgusundan Sql Üretme Yöntemi Kullanarak
- Yerel Ayar Tanımlayıcılarıyla Çalışma
- Özellikler ve Sütunlarla Çalışma
- Sorgu Terimi Genişletme ile Çalışma
- Diğer ISearchQueryHelper Yöntemleriyle Çalışma
- İlgili konular
ISearchQueryHelper ile çalışmaya başlama
ISearchQueryHelper arabirimini kullanarak Windows Search'i program aracılığıyla sorgulamaya başlamadan önce bilmeniz gereken birkaç temel arabirim ve yöntem vardır. Üst düzeyde şu adımları izlemeniz gerekir:
ISearchManager örneği oluşturun.
// Create ISearchManager instance ISearchManager* pSearchManager; // Use library SearchSDK.lib for CLSID_CSearchManager. hr = CoCreateInstance(CLSID_CSearchManager, NULL, CLSCTX_LOCAL_SERVER, IID_PPV_ARGS(&pSearchManager));ISearchManager::GetCatalogkullanarak ISearchCatalogManager örneğini alın. Windows Search için sistem kataloğunun adı
SYSTEMINDEX.// Create ISearchCatalogManager instance ISearchCatalogManager* pSearchCatalogManager; // Call ISearchManager::GetCatalog for "SystemIndex" to access the catalog to the ISearchCatalogManager hr = pSearchManager->GetCatalog(L"SystemIndex", &pSearchCatalogManager);ISearchCatalogManager::GetQueryHelperkullanarak ISearchQueryHelper örneğini alın.
// Call ISearchCatalogManager::GetQueryHelper to get the ISearchQueryHelper interface ISearchQueryHelper* pQueryHelper; hr = pSearchCatalogManager->GetQueryHelper(&pQueryHelper);ISearchQueryHelperbir örneğiniz olduktan sonra, Windows Search dizini OLE DB bağlayıcısına bağlanmak için kullanılan bağlantı dizesini alabilirsiniz.
// Call get_ConnectionString to get the OLE DB connection string LPWSTR pszConnectionString=NULL; hr = pQueryHelper->get_ConnectionString(&pszConnectionString); // NOTE: YOU MUST call CoTaskMemFree() on the string
GenerateSqlFromUserQuery yöntemini kullanma
ISearchQueryHelper::GenerateSQLFromUserQuery yöntemi, kullanıcı girişini bir SQL sorgu dizesine dönüştürür ve bu dize daha sonra Windows Search için OLE DB sağlayıcısına gönderilebilir. Bu yöntem, kullanıcı tarafından SQL'e girilen Gelişmiş Sorgu Söz Dizimi (AQS) veya Doğal Sorgu Söz Dizimi (NQS) sorgusunu çevirir ve gerektiğinde diğer SQL parçalarını eklemenize olanak tanır.
SQL sorgu dizesi aşağıdaki biçimde döndürülür:
SELECT <QuerySelectColumns>
FROM <CatalogName that created query helper>
WHERE <Result of interpreting the user query passed into this function according to QuerySyntax>
[ AND|OR <QueryWhereRestrictions> ]
Aşağıda, çağrı GenerateSQLFromUserQuery("comput")döndürülen SQL dizesinin bir örneği verilmiştir:
SELECT "System.ItemUrl"
FROM "SystemIndex"
WHERE ((CONTAINS(*,'"comput*"',1033) RANK BY COERCION(Absolute, 1)) OR
(FREETEXT(("System.ItemNameDisplay":0.9, *:0.1), 'comput', 1033) AND CONTAINS(*,'"comput"',1033)))
ORDER BY "System.ItemUrl"
Not düş
yalnızca CONTAINS anlamlı bir derecelendirme oluşturmadığından yöntemi hem FREETEXT hem de CONTAINS koşullarını oluşturur.
Yerel ayar tanımlayıcılarıyla çalışma
| Yöntem | Açıklama |
|---|---|
|
ISearchQueryHelper::get_QueryContentLocale/ ISearchQueryHelper::put_QueryContentLocale |
Sorgunun dil kodu tanımlayıcısını (LCID) alır/yerleştirir. Bu, sorgu terimlerini katalog/ters dizinle karşılaştırabileceğiniz doğru sözcük ayırıcı ve kök bulucuyu almanıza yardımcı olur. Varsayılan değer geçerli giriş yerel ayarıdır. |
|
ISearchQueryHelper::get_QueryKeywordLocale/ ISearchQueryHelper::put_QueryKeywordLocale |
Gelişmiş Sorgu Söz Dizimi (AQS) anahtar sözcüklerini ayrıştırırken kullanılacak dil için LCID'yi alır/yerleştirir. Varsayılan, varsayılan kullanıcı yerel ayarıdır. |
içerik yerel ayarı ve anahtar sözcük yerel ayarı, arama altyapısının sorgu terimlerinin dilini ve AQS anahtar sözcüklerinin dilini belirleyerek doğru sözcük ayırıcılarını kullanmalarına yardımcı olan yerel ayar tanımlayıcılarıdır (LCID). Windows Search birçok uluslararası sürümde sunulduğundan ve daha fazla dil için Çok Dilde Kullanıcı Arabirimi (MUI) paketleri içerdiğinden bunlar her zaman aynı LCID'ler değildir. İçerik yerel ayarı, kullanıcıların arama sorgusunu girdikleri dil için LCID'yi tanımlarken, anahtar sözcük yerel ayarı Gelişmiş Sorgu Söz Dizimi (AQS) anahtar sözcüklerini ayrıştırırken arama altyapısının kullandığı LCID'yi tanımlar.
Örneğin, MUI paketi olmayan English-US sürümünüz varsa hem içerik yerel ayarı hem de anahtar sözcük yerel ayarı 1033'dür. MUI paketi olmayan Almanca sürümünüz varsa, hem içerik yerel ayarı hem de anahtar sözcük yerel ayarı 1031 (gr-gr). Ancak, Rumence MUI paketiyle İngilizce sürümünüz varsa, içerik yerel ayarı 2072 (ro) ve anahtar sözcük yerel ayarı 1033 (en-us).
Özellikler ve sütunlarla çalışma
| Yöntemler | Açıklama |
|---|---|
|
ISearchQueryHelper::get_QueryContentProperties/ ISearchQueryHelper::put_QueryContentProperties |
Aramanın içerik özelliklerini alır/ayarlar (CONTAINS veya FREETEXT yan tümcelerinde listelenen özellik sütunu). |
|
ISearchQueryHelper::get_QuerySelectColumns/ ISearchQueryHelper::put_QuerySelectColumns |
SELECT deyiminde istenen sütunları (veya özellikleri) alır/ayarlar. Varsayılan değer System.ItemUrl ve WHERE yan tümcesinde kullanılan özelliklerdir. |
Öğeler, özellik deposunda satır olarak gösterilir. Her satır, bu öğenin özelliklerini temsil eden bir dizi sütun içerir. Tüm öğelerin belirli bir özellik için değeri olmaz. Örneğin, bir ses dosyası genellikle System.Property.FromName özelliği için bir değer içermez, ancak System.Music.Artist ile ilgili bilgiler içerebilir.
Bu yöntemlerle, özelliğine erişir veya özelliği, özellik deposunun bir veya daha fazla sütun adını belirten virgülle ayrılmış, null olarak sonlandırılmış, Unicode dizesiyle değiştirirsiniz: "System.Document.Author, System.Document.Title".
Sorgu terimi genişletmesi üzerine çalışma
| Yöntemler | Açıklama |
|---|---|
|
ISearchQueryHelper::get_QueryTermExpansion ISearchQueryHelper::put_QueryTermExpansion |
Arama terimi genişletme seçeneğini alır/ayarlar. |
Bu yöntem, normal ifade genişletmeye benzer şekilde joker karakterler içeren bazı sorgu terimlerinin genişletilmesine olanak tanır. Ön ek genişletme, aynı ön eke sahip sözcükleri arar (fun/funnel). Ayarlanmazsa, varsayılan değer SEARCH_TERM_PREFIX_ALL. SEARCH_TERM_EXPANSION numaralandırmasının desteklenen değerleri aşağıdaki gibidir:
- SEARCH_TERM_PREFIX_ALL - Tüm arama terimleri genişletildi
- SEARCH_TERM_NO_EXPANSION - Hiçbir arama terimi genişletilmemiş
Diğer ISearchQueryHelper yöntemleriyle çalışma
ISearchQueryHelper arabirimindeki yöntemlerin çoğu sorgu bağımsız değişkenlerini ayarlamak veya döndürülen özellikleri tanımlamak için kullanılır.
| Yöntemler | Açıklama |
|---|---|
|
ISearchQueryHelper::get_ConnectionString |
OLE DB bağlantı dizesini döndürür. Bu, düzgün biçimlendirilmiş ve doğru bir bağlantı dizesi almak için tercih edilen yöntemdir. |
|
ISearchQueryHelper::get_QueryMaxResults ISearchQueryHelper::put_QueryMaxResults |
Sorgu tarafından döndürülecek en fazla sonuç sayısını alır/ayarlar (yani, SELECT TOP n). Varsayılan değer -1'dir, yani maksimum sonuç yan tümcesi oluşturulmaz. |
|
ISearchQueryHelper::get_QuerySorting ISearchQueryHelper::put_QuerySorting |
Sorgu sonuç kümesinin sıralama düzenini alır/ayarlar (ORDER BY). ORDER BY yan tümcesi yoksa, sonuçlar belirli olmayan bir sırayla getirilir. |
|
ISearchQueryHelper::get_QuerySyntax ISearchQueryHelper::put_QuerySyntax |
Sorgunun söz dizimini alır/ayarlar: Gelişmiş Sorgu Söz Dizimi veya Doğal Sorgu Söz Dizimi. |
|
ISearchQueryHelper::get_QueryWhereRestrictions ISearchQueryHelper::put_QueryWhereRestrictions |
WHERE yan tümceleriyle eklenen kısıtlamaları alır veya ayarlar. |
İlgili konular
-
Dizin Sorgulamak için SQL ve AQS Yaklaşımlarını Kullanma