使用 IFilter 进行全文搜索






4.73/5 (25投票s)
2005年7月30日
32分钟阅读

118022

5073
索引服务器、SQL Server、Windows SharePoint Services、SharePoint Portal Server、Exchange Server 和 Windows Desktop Search 提供全文搜索功能。它们都利用所谓的 IFilter 组件来索引内容,然后允许客户端搜索索引。
引言
九十年代是关于信息创建和共享的。今天的挑战在于在需要时找到所需的信息。我们都深切体会到,我们似乎永远找不到那件能帮助我们完成当前任务的信息。结果是我们要么花费大量时间寻找信息,要么如果找不到,就花费大量时间通过反复试验来完成任务,直到摸索出如何完成。像索引服务器、Exchange Server、SharePoint Server、SQL Server 和 Windows Desktop Search 这样的 Microsoft 产品提供了强大的全文搜索功能。所有这些产品在全文搜索方面都有一个共同的构建块——IFilter
。
所有 Microsoft 全文搜索引擎的共同点是它们索引实际内容,然后允许针对这些索引执行搜索。索引过程会查找与内容关联的文件类型,然后调用关联的IFilter
。实现IFilter
的 COM 对象封装了对内容结构的理解,并执行内容的实际索引。如果第三方 ISV 拥有应被这些 Microsoft 产品搜索到的专有内容,则 ISV 需要创建一个适当的IFilter
COM 对象。一旦该IFilter
注册成功,所有 Microsoft 全文搜索引擎都可以使用它。这极大地简化了 ISV 使其内容可被所有不同 Microsoft 产品搜索的过程。
IFilter 如何与不同的文件/内容类型关联?
任何被搜索的内容都有一个关联的“文件扩展名”。索引服务器、SharePoint 和 Windows Desktop Search 用于索引和搜索文件系统上的文件。Exchange Server、SharePoint 和 SQL Server 可以嵌入文件,而这些文件又具有文件扩展名。SQL Server 中的所有其他字段自然被假定为文本格式,因此假定为“.txt”扩展名。Exchange Server 中的消息也假定为“.txt”扩展名。因此,注册表是关联IFilter
与每个文件扩展名的自然场所。索引过程首先确定内容的“文件扩展名”。然后它执行以下步骤:
- 步骤 1:确定文件扩展名是否关联了一个
PersistentHandler
。可以在注册表的HKEY_LOCAL_MACHINE\Software\Classes\FileExtension下找到,例如HKLM\Software\Classes\.htm。名为PersistentHandler
的子项的默认值给出了PersistentHandler
的 GUID。如果存在,则跳至步骤四,否则继续步骤二。 - 步骤 2:确定与文件扩展名关联的
CLSID
。获取与扩展名关联的默认值,例如,对于键HKLM\Software\Classes\.htm,它是“htmlfile”。接下来在HKLM\ Software\Classes下搜索该条目,例如“hmtlfile”。名为CLSID
的子项的默认值包含与该文件扩展名关联的 CLSID。 - 步骤 3:接下来在HKLM\Software\Classes\CLSID下搜索该 CLSID。名为
PersistentHandler
的子项的默认值给出了PersistentHandler
的 GUID。 - 步骤 4:再次在HKLM\Software\Classes\CLSID下搜索该 GUID。在其下,您会找到一个名为
PersistentAddinsRegistered
的子项,它始终有一个子项 {89BCB740-6119-101A-BCB7-00DD010655AF}(这是IFilter
接口的 GUID)。该键的默认值是IFilter
PersistentHandler
的 GUID。 - 步骤 5:再次在HKLM\Software\Classes\CLSID下搜索该 GUID。在其键下,您会找到
InProcServer32
子项,其默认值包含提供IFilter
接口供此扩展名使用的 DLL 名称。例如,对于.htm和.html扩展名,这是 DLL nlhtml.dll。
以下 文章 提供了更详细的描述和示例,说明如何找到 IFilter DLL。有关PersistentHandler
的更多信息,请参考 本文。
如何创建自己的 IFilter 组件?
注册了自己文件扩展名和专有内容结构的 ISV 需要提供自己的IFilter
组件,以便 Microsoft 产品可以搜索这些文件类型。Platform SDK 详细描述了 IFilter 接口。Platform SDK 还包含 三个示例 IFilter 实现。
本文使用的三个 IFilter 组件
“Channel9 Wiki”列出了现成的IFilter
组件。请注意,许多软件包会安装额外的IFilter
组件。它还提供了许多其他可用IFilter
组件的链接。Windows Desktop Search 有自己的网站,可提供额外的IFilter
组件 可用。本文的其余部分将解释索引服务器、SQL Server、Windows Desktop Search 和 SharePoint 中的全文搜索是如何工作的。它还将记录为使新的IFilter
组件正常工作所需的任何其他设置。使用的三个IFilter
组件是:
- CHM 文件扩展名 - CHM 扩展名用于已编译的 Windows 帮助文件。现成的 CHM 文件没有关联的
PersistentHandler
,因此它们不可搜索。安装程序会放置和注册一个 DLL - CHMIFilter.dll。 - ZIP 文件扩展名 - ZIP 文件默认不可搜索,因为它没有关联的
PersistentHandler
。此安装程序放置并注册一个 DLL - ztvArchFil.dll。Citeknet 提供的 ZIP IFilter 在索引服务器和 Windows Desktop Search 上运行良好,但我无法让它与 SQL Server 一起工作。它本身放置并注册一个 DLL - ZIPIFilter.dll。 - XML 文件扩展名 - XML 文件扩展名默认有一个
PersistentHandler
,它可以与索引服务器和 Windows Desktop Search 一起正常工作。但是默认的IFilter
与 SQL Server 不兼容。此 XMLIFilter
组件适用于所有这三者。您需要先提取文件,然后将XMLFilter.dll复制到windows\system32文件夹,然后进行注册。
您还可以从 Citeknet 下载 Filter Explorer。此浏览器会遍历注册表,列出所有可用的IFilter
组件。它还可以显示所有未关联IFilter
的文件扩展名,这意味着它们不可搜索。这对于理解哪些内容可搜索或不可搜索非常有用。它还模拟了不同 Microsoft 产品在查找可用IFilter
组件时读取注册表条目的略有不同的行为。
使用索引服务器进行全文搜索
以下 文章 描述了如何使用索引服务器来索引和搜索文件系统上的文件。索引服务器可以通过DLLsToRegister
注册表值(在HKLM\System\CurrentControlSet\Control\ContentIndex下)自动注册过滤器。当索引服务启动时,它会为列出的每个 DLL 调用DllRegisterServer
。在 Windows 2003 和 XP 中,这是一个多字符串值,因此可以通过 Windows 注册表编辑器进行编辑。在 Windows 2000 中,这是一个二进制值。一些过滤器在注册期间会将自己添加到此注册表值,例如 ZIP IFilter。
新注册的IFilter
只有在索引服务重新启动或单个索引目录本身重新启动后才会生效(然后仅对该索引目录生效)。注销 IFilter 仅在索引服务或单个索引目录重新启动之前生效。要删除已索引的内容,需要开始完全重新扫描。
使用 SQL Server 进行全文搜索
SQL Server 的全文搜索功能仅在安装了“全文搜索”组件(位于服务器组件下)时可用。如果您选择典型或完整安装,则该组件包含在内。否则,您需要重新运行安装并添加缺失的组件。这会添加执行实际索引和全文搜索的“Microsoft Search”服务。该服务必须运行才能使全文搜索正常工作。每当 SQL Server 遇到 CONTAINS
或 FREETEXT
SQL 语句或CONTAINSTABLE
或FREETEXTTABLE
函数时,它都会调用“MS Search”服务来针对索引目录执行实际的全文搜索。以下 文章 提供了 Microsoft Search 服务的概述。
如何为我的 SQL Server 数据库创建全文搜索目录?
打开 SQL Server 的 Enterprise Manager 并导航到您的 SQL Server 数据库(在左侧导航窗格中选择一个 SQL Server 组,然后选择一个已注册的 SQL Server,最后在“Databases”条目下选择您的 SQL Server 数据库)。您会在数据库下看到多个条目,其中一个称为“Full Text Catalogs”。这会显示为您数据库定义的任何全文搜索目录。右键单击右侧窗格或“Full Text Catalogs”条目,然后从弹出菜单中选择“New Full-Text Catalog”。为全文搜索目录命名,并选择目录文件的放置位置,默认为“c:\Program Files\Microsoft SQL Server\MSSQL\FTData”。“Schedules”选项卡允许您设置一个或多个计划来更新全文搜索目录,例如每周日进行完整填充,每 10 分钟进行增量填充。
单击“New Catalog Schedule”按钮定义一个新计划。为计划命名,并通过“Enabled”复选框选择启用或禁用它。在作业类型下,选择此计划是执行完整填充还是增量填充。完整填充会重建搜索目录,而增量填充会索引自上次填充以来发生的更改。最后,您选择计划,可以是 SQL Server Agent 的启动时间、特定日期和时间或重复计划。如果您选择“Recurring”,请单击“Change”按钮定义重复计划,例如每 10 分钟或每天上午 1:00 从 7 月 1 日到 7 月 31 日。
如何为一个或多个表的字段启用全文搜索?
为了能够对表执行全文搜索,您需要为该表创建全文索引。每个表只能定义一个全文索引。在左侧导航窗格中选择“Table”条目,以获取数据库中所有表的列表。右键单击一个表,然后从弹出菜单中选择“Full-Text Index Table | Define Full-Text Indexing on a Table”。这将打开一个向导,允许您选择要索引的字段。需要索引的表必须有一个“唯一的单列索引”,该索引不允许 Null
。例如,ID 字段上的主键不允许 Null
,或者 ID 字段上的索引具有唯一约束且不允许 Null
。当索引构建完成后,每个索引条目会通过唯一标识符指向其适用的表行。SQL Server 将查询中的任何自由文本搜索委托给 Microsoft Search 服务。Search 服务执行实际的自由文本搜索,然后返回应包含在结果集中的行列表。这是通过与每个索引条目关联的唯一标识符完成的。
“Full-Text Indexing”向导会指导您完成创建全文索引的过程。首先,您选择要使用的“unique index”,它允许您从表中所有唯一索引的列表中进行选择。接下来,您通过选中每个要索引的字段前的复选框来选择要索引的字段。该列表仅显示可以索引的字段,这些字段的数据类型为:char
、nchar
、varchar
、nvarchar
、text
、ntext
和image
。除了image
数据类型,所有数据类型都被视为文本字段,因此在索引过程中将使用 TXT IFilter。数据类型为image
的字段包含文件图像。当您选择数据类型为image
的字段时,您会在“document type column”下选择哪个字段将包含存储在图像字段中的文件的数据类型。Search 服务在索引过程中会查看此字段以了解存储的文件类型和要应用的IFilter
。例如,您可能有一个名为 FileImage 的image
数据类型字段和一个名为 FileType 的nvarchar
数据类型字段。在创建表中的记录时,您会将文件存储在 FileImage 字段中,并将文件类型存储在 FileType 字段中,例如“zip”。
选择所有要索引的字段后,您选择此索引属于哪个全文目录。您可以从现有目录列表中选择,也可以创建一个新的目录。接下来,您可以添加一个新的目录计划或表索引计划。您添加的任何目录计划将适用于全文目录中的所有表索引。您添加的表索引计划仅适用于表索引,允许您为不同的表创建不同的计划。完成向导将应用所有更改,这意味着它将添加目录计划、创建表索引并创建表索引计划。
如何管理现有的全文目录?
SQL Server 提供了一系列选项来管理您的全文目录。“Full-Text Catalogs”条目将列出所有定义的目录。在右侧窗格中,右键单击要管理的目录。弹出菜单将显示一些选项:
- Rebuild Catalog - 重建目录,生成一个新的空目录。
- Start Full Population - 启动完全填充,这会有效地重建目录。
- Start Incremental Population - 索引自上次填充以来的所有更改。
- Stop Population - 停止正在进行的填充。
- Schedules - 显示定义的计划列表,并允许您更改现有计划或创建新计划。
- Delete - 允许删除目录及其所有表索引。
- Properties - 显示目录的属性;“Tables”选项卡显示已索引并属于此目录的所有表;“Schedules”选项卡显示所有定义的计划。
如何管理表索引?
您可以通过全文目录找出哪些表定义了表索引。然后找到相应的表并右键单击它。从“Full-Text Index Table”弹出菜单中,您可以选择一些选项:
- Edit Full-Text Indexing - 打开“Full-Text Indexing”向导,允许编辑全文索引。
- Remove Full-Text Indexing from a table - 允许删除表索引。
- Start Full Population - 启动完全填充,这会有效地重建表索引。
- Start Incremental Population - 索引自上次填充以来的所有更改。
- Stop Population - 停止正在进行的填充。
- Schedules - 显示定义的计划列表,并允许您更改现有计划或创建新计划。
附带的示例数据库
附带的名为“FullTextSearchSample”的 SQL Server 数据库演示了如何将文件存储在数据库中,并通过 SQL Server 的全文搜索引擎搜索文件内容。它包含一个名为 DocumentLibrary 的表,该表有一个类型为image
的 DocumentImage 字段和一个类型为nvarchar
的 DocumentType 字段。附带的示例应用程序“Insert Files into Database”提供了一个 Windows Forms 应用程序,用于将文件插入数据库。您输入数据库服务器名称和要使用的用户凭据。接下来,输入要插入文件的表名、要插入文件内容的字段名以及要插入文件扩展名的字段名。最后,选择要插入的文件并单击“Insert”,这将创建一个新记录并插入文件和文件类型。您也可以通过使用 SQL Server 提供的TextCopy
实用程序来实现。它位于“c:\Program Files\Microsoft SQL Server\MSSQL\Binn”。这是一个例子:
TextCopy /S servername /U username /P password
/D FullTextSearchSample /T DocumentLibrary
/C DocumentImage /I /F filename /W "where ID = 8" /z
有关所有命令行参数的完整描述,请 单击此处。此实用程序只能更新现有记录,并且字段不能为NULL
,否则您将收到错误“Text or image pointer and timestamp retrieval failed”。在将一些文件添加到示例数据库后,请确保索引已更新。您可以通过右键单击“DocumentLibrary”全文目录并从弹出菜单中选择“Start Full Population”来手动启动它。接下来,打开“SQL Query Analyzer”,登录,选择“FullTextSearchSample”数据库,然后运行以下查询:
SELECT * FROM DocumentLibrary
WHERE CONTAINS( DocumentImage, 'Enterprise-Minds')
这将查询 DocumentImage 字段中包含文本“Enterprise-Minds”的所有记录。示例数据库已预先填充了一些文件,因此它将返回两条记录。
新注册的IFilter
在无需重启服务的情况下即可生效。注销IFilter
也无需重启任何服务。要删除已索引的内容,需要启动完全填充。
使用 Windows Desktop Search 进行全文搜索
Windows Desktop Search 是 Microsoft 允许个人用户索引和搜索其个人内容的方法。您可以从这里 下载带有 Windows Desktop Search 的 MSN Search 工具栏。类似的产品有 Google Desktop 和 Yahoo! Desktop Search。本文涵盖 Windows Desktop Search,因为它也利用IFilter
组件。本文不评价或比较上述任何桌面搜索工具。安装带有 Windows Desktop Search 的 MSN Search 工具栏非常直接。它还可以搜索您的个人电子邮件,这需要 Outlook 2000 或更高版本。安装将询问您是否要继续,如果 Outlook 2000 或更高版本不存在。这仍然允许您搜索文件内容,只是不能搜索电子邮件。确认消息为“OK”继续(如果出现消息)。这将启动所有文件的安装和注册,然后是“MSN Search Toolbar Customization Wizard”,它允许您配置带有 Windows Desktop Search 的 MSN Search 工具栏。
您可以勾选“Use the default settings and close this wizard”选项,如果您想使用所有默认选项。否则,请继续单击“Next”按钮。有三种 MSN Search 工具栏可以安装。显示在 Internet Explorer 和 Windows Explorer 中的 MSN Search 工具栏,显示在 Outlook 中的 MSN Search 工具栏(如果缺少 Outlook 2000 或更高版本,则为灰色),以及显示在 Windows 任务栏中的 MSN Search Deskbar。选择您要启用的搜索工具栏。接下来,您可以选择是否参与“Customer Experience Improvement Program”,以及是否将 msn.com 设置为您的默认互联网搜索。您还可以控制哪些内容将被索引以及一般的索引过程。接下来,您会看到以下选项:
- Automatically start Windows Desktop Search - 推荐此选项,因为它会在您登录时自动启动 Windows Desktop Search(安装程序会将 Windows Desktop Search 添加到 Startup 组)。否则,您需要通过 Windows 开始菜单手动启动它。在“All Programs”下,您会找到一个 Windows Desktop Search 图标。一旦 Windows Desktop Search 启动,您将在 Windows 任务栏的图标托盘中看到一个图标。
- What to index - 在这里指定要索引哪些驱动器、文件夹和电子邮件文件夹。您可以选择索引所有电子邮件和硬盘驱动器(这仅索引您有权访问的文件和文件夹),所有电子邮件和存储在“My Documents”下的文件(这是您的所有个人内容,也是默认选项),或者您可以指定要索引的文件夹和电子邮件。如果您选择最后一个选项,请单击 Browse 按钮查看所有硬盘驱动器、文件夹和电子邮件文件夹的列表。选择您要索引的(这只显示您有权访问的驱动器和文件夹)。
- Index email attachments - 如果您也想索引文件附件(推荐且为默认),请勾选此复选框。
- Index new items while on battery power - 在使用电池供电时节省电量很有用,并且再次是推荐的默认选择。
这将完成配置向导,并且还会(如果选择)在浏览器中打开 此网站。该网站显示了可用的 Windows Desktop Search 插件,例如额外的IFilter
组件。安装会自动启动 Windows Desktop Search,它会在 Windows 任务栏的图标托盘中显示一个图标。这会启动两个进程WindowsSearch.exe和WindowsSearchIndexer.exe。当正在进行索引时,会启动第三个进程WindowsSearchFilter.exe。您可以右键单击 Windows 任务栏中的图标托盘,查看可用选项列表:
- Snooze Indexing 1 Hour - 允许您暂停索引过程一个小时。
- Index Now - Windows Desktop Search 仅在用户不活动时进行索引。这在用户活动时提供了最佳的 Windows 响应能力,并在用户不活动时索引内容。通过此选项,您可以强制立即进行索引。
- Indexing Status - 在右下角显示一个 Windows 窗体,其中包含当前的索引状态。您可以将索引过程暂停最多一天,或立即强制进行索引。
- Desktop Search options - 打开“MSN Search Toolbar Options”对话框,其中提供了许多设置:
- General - 在这里,您可以设置在从 Windows Desktop Search 调用 Web 搜索时(默认使用 msn.com)将搜索哪个国家/地区。您还可以指定任何其他搜索引擎,例如 http://www.google.com/search?hl=en&q=$w 来使用 Google。
- Deskbar - 允许设置 Windows Deskbar 的一些选项。您可以从这里显示或隐藏 Deskbar,设置激活它的组合键(与单击 Deskbar 上的搜索框相同),是否在您键入时搜索和显示结果,显示 go 按钮等。
- Desktop Search - 提供有关索引内容和索引运行方式的一些选项。这些选项与您在安装过程中看到的相同。在“Advanced”子项下,您可以指定哪些文件扩展名被视为文本文件(例如,扩展名为.c或.cs的文件),以及应忽略哪些文件扩展名(例如,扩展名为.386或.bak的文件)。它还允许更改索引文件的放置位置,默认情况下在“c:\Documents and Settings\Username\Local Settings\Application Data\ Microsoft”下。在此下方,您会找到一个名为“Desktop Search”的文件夹,其中包含配置信息、临时文件夹、日志文件等。通过将其放在用户配置文件下,可以确保每个用户只存储/查看自己的信息。勾选“Prioritize Indexing”选项,可以告诉 Windows Desktop Search 在用户活动时进行索引。
- Toolbar - 包含一些选项,例如要在工具栏中显示的图标,启用标签式浏览,启用弹出窗口阻止程序,打开搜索结果高亮显示(在搜索结果中高亮显示搜索词)等。
- Search Now - 打开“Windows Desktop Search Result”窗口,允许用户搜索本地或 Web 内容。也可以通过 Windows 开始菜单下的“Window Desktop Search”图标打开。
- Exit - 关闭 Windows Desktop Search,然后停止所有索引。
如何使用 Windows Deskbar 搜索本地内容?
您可以通过右键单击 Windows 任务栏并从弹出菜单中选择“Toolbars | MSN Search Deskbar”来显示或隐藏 Windows Deskbar。这将显示一个带有搜索框和 Go 按钮的工具栏。通过单击搜索框或按 Ctrl + Alt + M(默认组合键)来激活搜索框。这将打开“Windows Desktop Results”弹出窗口,该窗口会在您键入搜索短语时显示匹配结果。单击搜索框旁边的 Go 按钮或“Windows Desktop Results”弹出窗口底部的“Search Desktop”按钮,将打开“Windows Desktop Search Result”窗口。搜索短语将被传递,窗口将显示本地搜索的结果。单击“Windows Desktop Search”弹出窗口底部的 Web 按钮将调用 Web 搜索并打开一个浏览器显示 Web 搜索结果。默认情况下,它使用 msn.com 搜索或已配置的任何搜索引擎。
从“Windows Desktop Search Result”窗口内搜索
如上所述,可以通过 Windows 开始菜单或 Windows Deskbar(已传递搜索词并显示结果)启动“Windows Desktop Search Result”窗口。窗口顶部是搜索栏,您可以在其中输入搜索短语,然后通过单击“Search Desktop”按钮进行本地搜索,或通过单击“Web”按钮进行 Web 搜索。Web 搜索将再次使用配置的搜索引擎。本地搜索的结果将显示在左下窗格中。您可以通过单击筛选器按钮(在搜索正下方的筛选器栏上)来筛选结果集,例如 Everything、Documents、Music、IM Chats 等。这允许您按内容类型进行筛选。“Other”按钮会显示一个所有可用筛选器选项的列表供您选择。在右下窗格中,您可以看到搜索结果中选定文件的预览。筛选器栏中从右数倒数第二个图标允许您将结果集从大图标切换到小图标,并选择预览窗格的位置(右侧、底部或关闭)。
新注册的IFilter
在无需重启服务的情况下即可生效。注销IFilter
也无需重启任何服务。要删除已索引的内容,需要重建索引。打开“Desktop Search Options”,在左侧选择“Desktop Search”项,然后选择“Rebuild Index”按钮。这将关闭 Windows Desktop Search,重建目录,重新启动 Windows Desktop Search,然后启动索引过程。这可能需要几分钟时间。
使用 Windows SharePoint Services 进行全文搜索
Windows SharePoint Services 和 SharePoint Portal Server 都利用IFilter
组件进行搜索。以下 文章 解释了如何安装 Windows SharePoint Services 以启用搜索。Windows SharePoint Services 中有关搜索的设置有限。打开 SharePoint Central Administration(通过“Administrative Tools”Windows 开始菜单),然后在“Component Configuration”部分选择“Configure full-text search”。唯一选项是启用或禁用适用于所有 SharePoint 门户的全文搜索功能。启用全文搜索后,您可以搜索上传到任何“Document Library”的文档内容。Windows SharePoint Services 在上传新文档时自动刷新索引。通常需要几分钟才能更新索引,新文档才能包含在搜索结果中。
新注册的IFilter
只有在禁用然后重新启用全文搜索选项后才能生效,这会有效地重建目录。然后可能需要几分钟才能重建索引。注销IFilter
也只有在禁用然后重新启用全文搜索选项后才能生效。
使用 SharePoint Portal Server 进行全文搜索
SharePoint Portal Server 提供了对索引过程更大的控制。SharePoint Portal Server 注册了其独立的“Microsoft SharePointPS Search”Windows 服务用于全文搜索。与 SQL Server 的“Microsoft Search”类似,它负责实际的索引和搜索过程。要配置 SharePoint Portal Server 中的搜索,请打开您的门户,然后单击“Site Settings”。这将打开“Site Settings”页面,其中有一个名为“Search Settings and Indexed Content”的部分。此部分提供了有关门户内容和非门户内容如何被索引的一些设置。非门户内容可以是网页或完整的网站,Exchange Server 的公用文件夹或文件共享。因此,SharePoint Portal Server 允许您索引和搜索更广泛的来源。
在“Search Settings and Indexed Content”部分下选择“Configure search and indexing”项。“Configure Search and Indexing”页面有三个部分。“General Content Settings and Indexing Status”部分向您展示了索引的整体概述。您可以查看已索引的门户或非门户文档的数量,门户或非门户索引上次更新的时间,以及上次索引更新的任何错误或警告。单击显示的错误或警告数量,将打开“Gatherer log details”页面,其中包含发生的错误或警告的详细列表。SharePoint 有四种不同的索引更新模式:
- Full - 此模式索引所有内容并执行索引的完整更新。
- Incremental - 此模式索引自上次更新以来的更改。
- Incremental (inclusive) - 此模式索引自上次更新以来的更改,包括 Web Part 页面和页面。
- Adaptive - 此模式根据网站历史记录索引可能已更改的内容。
您可以在以下 文章 中找到每种索引更新模式的详细描述。在总体索引概述下,您会找到一个链接列表,如下所示:
- Refresh - 使用最新信息刷新此页面。
- Start portal content update - 显示门户内容可用的四种索引更新模式。选择一种以执行该索引更新,例如单击 Full 以执行完全索引更新。如果索引更新正在进行中,则只会显示 Stop,允许您停止索引更新。
- Start non portal content update - 为非门户内容提供相同的索引更新模式。
- Manage Search schedules - 打开“Manage Search Schedules”页面,允许管理索引更新计划。现成的计划有三个:非门户内容的每日增量更新,门户内容的每日包含增量更新,以及每十分钟的门户内容增量更新。您可以添加新计划,删除或更新现有计划。
- View errors and warnings on - 允许打开“Gatherer log details”页面以查看门户内容或非门户内容的错误和警告。
- Manage Search scopes - 打开“Manage Search Scopes”页面,用于管理搜索范围。现成的范围只有一个,名为“All Sources”。您可以创建新的搜索范围,删除或编辑现有搜索范围。搜索范围允许您将搜索限制在一个或多个区域。当用户执行搜索时,他们可以从可用搜索范围列表中进行选择。
- Include file types - 打开“Specify File Types to Include”页面。这允许指定将在搜索中包含的文件类型。为了使新的
IFilter
组件生效,您需要注册该组件,然后将文件类型添加到此列表中,例如,注册“ztvArchFil.dll”组件,然后将“zip”扩展名添加到包含的文件类型列表中。如果您注销IFilter
组件,也应从列表中删除该文件类型。所有更改在执行完全索引更新时生效。新文件类型默认没有关联的图像。将要与新文件类型关联的图像文件复制到“c:\Program Files\Common Files\Microsoft Shared\web server extensions\60\template\images”文件夹。然后编辑文件“c:\Program Files\Common Files\Microsoft Shared\web server extensions\60\template\xml\docicon.xml”。在“ByExtension”节点下,添加文件类型与要使用的图像之间的映射,例如“<Mapping Key="zip" Value="zip.gif"/>
”。您需要重启 IIS 才能使图像生效。注意,SharePoint 允许您阻止文件类型。如果要添加被阻止的新文件类型,则需要解除阻止。打开“SharePoint Central Administration”(通过 Windows 开始菜单的“Administrative Tools”),然后在“Security Configuration”部分选择“Manage blocked file types”项。删除您要解除阻止的文件类型,或添加您要阻止的文件类型。更改立即生效。 - Add content Source - 这会显示“Add Content Source”向导,允许您添加新的非门户数据源进行搜索。这些可以是 Exchange Server 上的公用文件夹、文件共享或网页或整个网站。例如,要添加一个新的文件共享,请选择“File Share”选项,然后单击“next”。然后在 Address 字段中输入文件共享(例如,\\Enterprise-Minds\MyShare),添加描述,并选择是否包含子文件夹。最后,单击“finish”按钮,显示新数据源的摘要。您可以创建新的更新计划或启动完全索引更新。
- Enable advanced search administration mode - 高级模式允许您管理多个搜索索引。切换到此模式将在“Configure Search and Indexing”页面上显示一个名为“Content Indexes”的新部分。默认情况下,您会看到 Portal_Content 和 Non_Portal_Content 索引。通过“Manage content indexes”链接,您可以打开“Manage Content Indexes”页面。您可以创建新索引,并编辑或删除现有索引。此模式会从“Configure Search and Indexing”页面中移除“Start portal content update”、“Start non portal content update”和“View errors and warnings on”链接。您现在通过“Manage Content Indexes”页面执行这些操作。单击其中一个索引,将打开弹出菜单,允许您从中选择这些选项。
“Configure Search and Indexing”页面上的“Other Content Sources”部分允许您添加新的内容源。默认情况下,您会看到“This Portal”和“People”数据源。“Manage content sources”链接将打开“Manage Content Sources”页面,允许您添加新数据源(与上面描述的“Add content source”向导相同),并编辑或删除现有数据源。通过“Configure Search and Indexing”页面上的“Site Directory”部分,您可以管理 SharePoint 如何抓取网站。请参阅 SharePoint 文档,因为此主题超出了本文的范围。
我可以使用 Window Desktop Search 作为其他搜索应用程序的前端吗?
Windows Deskbar 允许您创建指向 URL、文件或应用程序的快捷方式。Windows Deskbar 的搜索文本框可用于执行、创建和更新这些快捷方式。要创建或更新快捷方式,请以 @ 字符开头,后跟快捷方式名称,然后是逗号,然后是与快捷方式关联的 URL 或文件名。如果快捷方式指向应用程序,则在逗号后输入一个等于号,后跟应用程序名称。以下是一个示例:
@ixs,=iexplore.exe file:///c:/windows/help/ciquery.htm#machine=MachineName,
catalog=CatalogName
这会创建一个名为ixs
的快捷方式,该快捷方式会启动 Internet Explorer 并传递一个本地 HTML 页面以加载,包括一些参数。页面ciquery.htm由索引服务器提供,并为搜索索引目录提供了一个前端。machine 参数传递要查询的索引服务器,catalog 参数传递要查询的索引目录。这将显示“Indexing Query Form”,允许用户输入搜索条件,执行查询,然后查看匹配的结果。要启动“Indexing Query Form”,您需要在 Windows Deskbar 的搜索框中键入快捷方式名称并按 Enter 键。这将启动浏览器并加载表单。在 Windows XP 和 Windows 2003 上,浏览器会显示有关活动内容的警告。单击顶部的“信息栏”,然后从弹出菜单中选择“Allow Blocked Content”。这允许“Indexing Query Form”正确加载。该表单仅与 Internet Explorer 兼容。
您还可以从 Windows Deskbar 创建一个指向 SharePoint Portal Server 的搜索快捷方式。创建指向您的 SharePoint Portal Server 的search.aspx页面的快捷方式。请注意,这不适用于 Windows SharePoint Services。以下是一个示例:
@sp,http://<SharePoint Server>/search.aspx?k=$w&s=All%20sources
此示例创建一个名为“sp
”的快捷方式,该快捷方式调用search.aspx页面并传递两个参数。“k
”参数是搜索词,设置为$w
,这意味着 Windows Deskbar 会传递用户传递给快捷方式的值,而“s
”参数是搜索范围。在本例中,搜索范围始终设置为“All sources”。然后,用户可以在 Windows Deskbar 中键入“sp <search term>”,这将打开一个浏览器,显示 SharePoint Portal Server 执行的搜索结果,例如“sp Vancouver”。这也适用于用空格分隔的多个搜索词,例如“sp City of Vancouver”。
摘要
Microsoft 随着索引服务器发布了其第一个全文搜索引擎。此后,它基于相同的概念进行了扩展,并提供了一种通用的方法来扩展索引服务器、SQL Server、SharePoint、Exchange Server 和 Windows Desktop Search 的全文搜索引擎。这使得 ISV 能够轻松地将其专有内容的全权搜索功能添加到大多数 Microsoft 产品中。IFilter
在社区中广为人知,您可以找到大多数文件类型的IFilter
组件。Platform SDK 提供了详细的示例,并提供了一些工具来测试IFilter
组件。如果您对本文或此主题有任何评论,请通过 klaus_salchner@hotmail.com 与我联系。我想听听您是否学到了新东西。如果您对此主题或本文有疑问,请与我联系。