URL 格式设置要求

从 Windows 7 开始,URL 的处理和分析仍存在不一致。 本主题提供了有关文件URL格式不一致问题的有限指南。

本主题按如下所示进行组织:

使用的 URL 格式

第三方协议负责定义其 URL 格式,并以符合其标准的方式定义查询。 例如,Microsoft Outlook 支持包含任意字符的文件夹名称,包括 URL(如字符) "?" 中非法的文件夹名称。 MAPI 协议处理程序对其 URL 执行自己的 URL 编码。 因此,索引存储 "%3F" 而不是 "?" ,Outlook 在创建查询时必须考虑到这一点。

下表中列出了不同的格式,并为每个格式分配了一个字母标识符,用于在本主题后面引用它们。

ID 本地文件 URL 或远程文件 URL Example
A Local file:///c:\test\example\
B Local file:c:/test/example/
C Local c:\test\example\
D Remote file:///\\server\share\
E Remote file://server/share/
F Remote \\server\share\

 

斜杠方向、末尾星号和末尾斜杠的敏感度

在 Windows 搜索中,主要没有斜杠方向的敏感度。 如果接受格式 c:\test\example ,则也接受 c:/test/example。 但是,虽然 SCOPE 通常对斜杠方向不敏感,但在远程 URL 格式 F 的情况下对斜杠方向很敏感。 Scope = '//server/share' 因此,它不起作用。

唯一对尾随星敏感并区分 c:\test\ c:\test\* 的 API 是 ISearchCrawlScopeManager。 如果存在用于 c:\test\* 的排除规则,则 URL 目录 c:\test 本身仍会被索引。 但是,如果排除 URL 是 c:\test\,则不会为 URL 目录 c:\test 本身编制索引。

Windows 搜索在以下两个位置对尾部斜杠敏感:ItemUrl 和 Path 查询。 如果存在目录c:\test,Windows 搜索对c:\test\c:\test中的谓词,如path = 'c:\test'System.ItemUrl = 'c:\test',进行不同的处理。 例如,谓词 path='file:c:/test' 可以与目录 c:\test 匹配,但谓词 path='file:c:/test/' 则不行,因为尾部的斜杠。

按 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 Y
范围= N Y Y
目录= N Y Y
项目地址:ItemUrl= N Y Y
路径= N Y Y

 

下表中列出了选定查询所接受的远程文件URL格式。

Query 格式 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 Y

 

索引中包含的内容

Windows 搜索中的索引过程

Windows 搜索中的查询过程

Windows 搜索中的通知过程