Поделиться через


Требования к форматированию URL-адресов

По состоянию на Windows 7 несогласованность остается в обработке и анализе URL-адресов. В этом разделе содержится краткое руководство по устранению несоответствий в форматах URL-адресов файлов.

Этот раздел организован следующим образом:

Форматы URL-адресов, используемые

Сторонние протоколы отвечают за определение формата URL-адреса и определение запросов таким образом, что соответствует их стандарту. Например, Microsoft Outlook поддерживает имена папок с произвольными символами, включая те, которые являются незаконными в URL-адресах, таких как символ "?". Обработчик протокола MAPI кодирует свои URL-адреса. Таким образом, индекс сохраняет "%3F" вместо "?", а Outlook должен учитывать это при создании запросов.

Различные форматы перечислены в следующей таблице, и каждому из них присваивается буквенный идентификатор для их упоминания далее в этом разделе.

ИДЕНТИФИКАТОР URL локального или удаленного файла Пример
A Местный file:///c:\test\example\
B Местный file:c:/test/example/
C Местный c:\test\example\
D Удалённый file:///\\server\share\
Е Удалённый file://server/share/
F Удалённый \\server\share\

 

Направление косой черты, конечная звездочка и чувствительность к конечной косой черте

В основном, в Поиске Windows нет чувствительности к направлению косой черты. Если формат c:\test\example принимается, то также принимается c:/test/example. Однако, хотя SCOPE обычно не чувствителен к направлению косой черты, он чувствителен к направлению косой черты в случае удаленного формата URL-адреса F. Следовательно, Scope = '//server/share' не работает.

Единственный API, чувствительный к конечным звёздочкам и различающий c:\test\ и c:\test\*, это: ISearchCrawlScopeManager. Если для c:\test\*существует правило исключения, каталог URL-адресов c:\test по-прежнему будет индексирован. Но если URL-адрес исключения c:\test\, каталог URL-адресов c:\test не будет индексирован.

Существует два места, где поиск Windows учитывает конечные косые черты: ItemUrl и запросы Path. Если существует каталог c:\test, Windows Search обрабатывает c:\test\ иначе, чем c:\test, для таких предикатов, как path = 'c:\test' и System.ItemUrl = 'c:\test'. Например, предикат path='file:c:/test' будет совпадать с каталогом c:\test, но path='file:c:/test/' не будет соответствовать из-за завершающей косой черты.

Форматы URL-адресов по API и запросу

Форматы URL-адреса локального файла, принятые выбранными API и запросами, перечислены в следующей таблице. Форматы связаны с буквой (A-F), значение которой было обозначено в разделе "Форматы URL-адресовв использовании" выше в этом разделе.

API или запрос Формат A Формат B Формат C
ISearchCrawlScopeManager Y N Y
IGatherNotifyInline::OnDataChange Y Y Y
ISearchCatalogManager::ReindexMatchingURLs Y Y Y
ISearchCatalogManager::ReindexSearchRoot Y N N
ISearchCatalogManager2::PrioritizeMatchingURLs У Y Y
Область= N Y Y
Каталог= N Y Y
ItemUrl= N Y Y
Путь= N Y Y

 

Форматы URL-адреса удаленного файла, принятые выбранными запросами, перечислены в следующей таблице.

Запрос Формат D Формат E Формат 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
Область= Y Y Y
Каталог= Y Y Y
ItemUrl= Y Да Y
Путь= Y Y Y

 

что включается в индекс

процесс индексирования в Windows Search

Процесс запроса в поиске Windows

Процесс уведомлений в Windows Поиске