Wymagania dotyczące formatowania adresów URL

Od systemu Windows 7 niespójności pozostają w obsłudze i analizowaniu adresów URL. Ten temat zawiera ograniczony przewodnik po nawigowaniu po niespójnościach w formatach adresów URL plików.

Ten temat jest zorganizowany w następujący sposób:

Formaty adresów URL w użyciu

Protokoły zewnętrzne są odpowiedzialne za definiowanie formatu adresów URL i definiowanie zapytań w sposób zgodny ze standardem. Na przykład program Microsoft Outlook obsługuje nazwy folderów z dowolnymi znakami, w tym niedozwolonymi w adresach URL, takimi jak znak "?". Obsługiwacz protokołu MAPI wykonuje własne kodowanie swoich adresów URL. W związku z tym indeks przechowuje "%3F" zamiast "?" , a program Outlook musi wziąć to pod uwagę podczas tworzenia zapytań.

Różne formaty są wymienione w poniższej tabeli i każdy ma przypisany identyfikator litery do odwoływania się do nich w dalszej części tego tematu.

identyfikator Adres URL pliku lokalnego lub zdalnego Przykład
A Lokalny file:///c:\test\example\
B Lokalny file:c:/test/example/
C Lokalny c:\test\example\
D Zdalny file:///\\server\share\
E Zdalny file://server/share/
F Zdalny \\server\share\

 

Kierunek ukośnika, końcowa gwiazda i końcowa szczegółowość ukośnika

W usłudze Windows Search w dużej mierze nie ma wrażliwości dotyczącej kierunku ukośnika. Jeśli format c:\test\example zostanie zaakceptowany, zostanie również zaakceptowany kod c:/test/example. Jednak mimo że SCOPE jest zwykle niewrażliwy na kierunek ukośnika, w przypadku zdalnego formatu URL F jest na niego wrażliwy. Dlatego Scope = '//server/share' nie działa.

Jedynym interfejsem API, który jest wrażliwy na gwiazdki na końcu i rozróżnia między c:\test\ a c:\test\*, jest ISearchCrawlScopeManager. Jeśli istnieje reguła wykluczania dla c:\test\*, katalog URL c:\test będzie nadal indeksowany. W przypadku, gdy adres URL wykluczenia to c:\test\, katalog URL c:\test nie będzie indeksowany.

Istnieją dwa obszary, w których usługa Windows Search jest wrażliwa na ukośniki na końcu: zapytania ItemUrl i Path. Jeśli istnieje katalog c:\test, usługa Windows Search traktuje c:\test\ inaczej niż c:\test dla predykatów, takich jak path = 'c:\test' i System.ItemUrl = 'c:\test'. Na przykład predykat path='file:c:/test' będzie zgodny z katalogiem c:\test, ale path='file:c:/test/' nie, ze względu na końcowy ukośnik.

Formaty adresów URL według interfejsu API i zapytania

W poniższej tabeli wymieniono lokalne formaty adresów URL plików zaakceptowane przez wybrane interfejsy API i zapytania. Formaty są skojarzone z literą (od A do F), której znaczenie określono w sekcji "Formaty adresów URLużywane" we wcześniejszej części tematu.

Interfejs API lub zapytanie Formatowanie A Format B Sformatuj C
ISearchCrawlScopeManager Y N Y
IGatherNotifyInline::OnDataChange Y Y Y
ISearchCatalogManager::ReindexMatchingURLs Y Y Y
ISearchCatalogManager::ReindexSearchRoot Y N N
ISearchCatalogManager2::PrioritizeMatchingURLs Y Y Y
Zakres = N Y Y
Katalog = N Y Y
ItemUrl= N Y Y
Ścieżka= N Y Y

 

W poniższej tabeli wymieniono formaty adresów URL plików zdalnych zaakceptowane przez wybrane zapytania.

Zapytanie Format D Format E Formatuj F
ISearchCrawlScopeManager N/A N/A N/A
IGatherNotifyInline::OnDataChange N/A N/A N/A
ISearchCatalogManager::ReindexMatchingURLs N/A N/A N/A
ISearchCatalogManager::ReindexSearchRoot N/A N/A N/A
ISearchCatalogManager2::PrioritizeMatchingURLs N/A N/A N/A
Zakres = Y Y Y
Katalog = Y Y Y
ItemUrl= Y Y Y
Ścieżka= Y Y Y

 

Co jest uwzględnione w indeksie

Proces indeksowania w usłudze Windows Search

Proces wykonywania zapytań w usłudze Windows Search

Procedura powiadomień w Windows Search