Требования к форматированию URL-адресов
По состоянию на Windows 7 несогласованность остается в обработке и анализе URL-адресов. В этом разделе содержится краткое руководство по устранению несоответствий в форматах URL-адресов файлов.
Этот раздел организован следующим образом:
- форматы URL-адресов в
- чувствительность к направлению косой черты, конечной звезде и конечной косой черте
- форматы URL-адресов в соответствии с API и запросами
- Связанные темы
Форматы 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 Поиске