管理搜索索引
Azure DevOps Server 2022 - Azure DevOps Server 2019
可以管理搜索扩展和索引状态,其中包括以下操作:
先决条件
管理索引
搜索通过运行 PowerShell 和 SQL 脚本进行管理。 所有这些脚本都可以从 代码搜索 GitHub 存储库下载。 可以将所有脚本下载到服务器上的本地文件夹中。 此服务器使用“下载 ZIP”选项运行Azure DevOps Server数据库。
PowerShell 脚本需要 SQL 脚本文件,因此请确保 存在 SqlScripts 文件夹及其内容以及 PowerShell 脚本。
注意
执行脚本时,请确保为版本运行适当的脚本:
检查索引状态
若要在配置搜索后或为集合安装扩展后检查索引状态,请执行以下步骤。
ExtensionInstallIndexingStatus.ps1
使用管理权限执行脚本,并输入以下信息:- Azure DevOps Server 配置数据库所在的 SQL Server 实例名称。
- Azure DevOps Server集合数据库的名称。
- Azure DevOps Server配置数据库的名称。
- 集合的名称。
- 要检查索引状态的前几天数。
查看以下输出:
- 已成功触发集合索引:指示正在编制索引。
- 存储库索引已完成: 列出其索引已完成且可搜索的存储库。
- 存储库当前编制索引的状态: 列出仍在编制索引且部分可搜索的所有存储库的名称。 索引需要一些时间才能完成。
RecentIndexingActivity.ps1
按间隔执行脚本以编制进度索引。 此脚本采用与脚本相同的参数ExtensionInstallIndexingStatus.ps1
:- 存储库已完成新的索引编制: 显示索引在指定时间间隔内完成的存储库数。
- 正在进行新索引的存储库计数: 显示索引未完成的存储库数。 这些存储库仍在编制索引,并且部分可搜索。
- 存储库已完成连续索引: 显示指定时间间隔内处理的提交数。 该数字可能与推送到存储库的总数不完全匹配,因为合并在编制索引时提交。
- 正在进行连续索引的存储库计数: 显示仍在处理提交的存储库数。 在索引完成之前,这些存储库会显示不完整的结果。
- 索引作业失败计数: 显示失败的索引作业数。 与这些索引作业关联的存储库可能会显示不完整的结果,直到以后为同一存储库编制索引作业修补失败的索引。
CheckIndexingStatus.ps1
使用管理权限执行脚本,并输入以下信息:- TFS 配置数据库所在的 SQL Server 实例名称。
- TFS 集合数据库的名称。
- TFS 配置数据库的名称。
- 集合的名称。
- 要检查索引状态的前几天数。
查看以下输出:
- 已成功触发集合索引:指示正在编制索引。
- 存储库索引已完成: 列出其索引已完成且可搜索的存储库。
- 文件发现阶段中的存储库: 尚未发现文件的存储库。 这些文件在此阶段之后编制索引。
- 正在进行中的存储库索引: 部分编制索引且应可搜索的存储库,即使结果只是部分。 编制索引可能需要一些时间才能完成。
监视进度:
CheckIndexingStatus.ps1
按间隔执行脚本以编制进度索引。- 如果索引不起作用,或者挂起的文件数在一段时间内未更改,请使用管理权限执行
TriggerCollectionIndexing.ps1
脚本。
如果遇到任何问题,请获取对开发者社区的支持。
暂停索引编制
若要暂停所有索引编制,请执行: PauseSearchIndexing.ps1
如果在配置搜索后看到 CPU 使用率峰值,这非常有用。 系统会提示输入以下信息。
- Azure DevOps Server配置数据库所在的 SQL Server 实例名称
- Azure DevOps Server配置数据库的名称
恢复索引编制
如果暂停了索引编制,请执行: ResumeIndexing.ps1
再次启动。 系统会提示输入以下信息。
- Azure DevOps Server配置数据库所在的 SQL Server 实例名称
- Azure DevOps Server配置数据库的名称
为存储库或集合重新编制索引
若要为 Git 或 TFVC 存储库重新编制索引,请为 Azure DevOps Server 版本执行相应的脚本 Re-IndexingRepository.ps1
版本。
系统会提示输入以下信息。
- Azure DevOps Server配置数据库所在的 SQL Server 实例名称
- Azure DevOps Server集合数据库的名称
- Azure DevOps Server配置数据库的名称
- 要执行的重新编制索引的类型,
Git\_Repository
或TFVC\_Repository
- 集合的名称
- 要重新编制索引的存储库的名称
若要对集合重新编制索引,请执行脚本: TriggerCollectionIndexing.ps1
。
系统会提示输入以下信息。
- Azure DevOps Server配置数据库所在的 SQL Server 实例名称
- Azure DevOps Server集合数据库的名称
- Azure DevOps Server配置数据库的名称
- 集合的名称
- 要重新编制索引的实体、或
All
Code
WorkItem
Wiki
搜索限制
如果执行灾难恢复 (DR) 操作,并将服务器移回 SQL 数据库的早期快照,请 对所有集合重新编制索引。