管理搜索索引

Azure DevOps Server 2022 - Azure DevOps Server 2019

可以管理搜索扩展和索引状态,其中包括以下操作:

先决条件

管理索引

搜索通过运行 PowerShell 和 SQL 脚本进行管理。 所有这些脚本都可以从 代码搜索 GitHub 存储库下载。 可以将所有脚本下载到服务器上的本地文件夹中。 此服务器使用“下载 ZIP”选项运行Azure DevOps Server数据库。

PowerShell 脚本需要 SQL 脚本文件,因此请确保 存在 SqlScripts 文件夹及其内容以及 PowerShell 脚本。

显示用于管理的下载脚本文件的屏幕截图。

注意

执行脚本时,请确保为版本运行适当的脚本:

检查索引状态

若要在配置搜索后或为集合安装扩展后检查索引状态,请执行以下步骤。

  1. ExtensionInstallIndexingStatus.ps1使用管理权限执行脚本,并输入以下信息:

    • Azure DevOps Server 配置数据库所在的 SQL Server 实例名称。
    • Azure DevOps Server集合数据库的名称。
    • Azure DevOps Server配置数据库的名称。
    • 集合的名称。
    • 要检查索引状态的前几天数。
  2. 查看以下输出:

    • 已成功触发集合索引:指示正在编制索引。
    • 存储库索引已完成: 列出其索引已完成且可搜索的存储库。
    • 存储库当前编制索引的状态: 列出仍在编制索引且部分可搜索的所有存储库的名称。 索引需要一些时间才能完成。
  3. RecentIndexingActivity.ps1按间隔执行脚本以编制进度索引。 此脚本采用与脚本相同的参数 ExtensionInstallIndexingStatus.ps1

    • 存储库已完成新的索引编制: 显示索引在指定时间间隔内完成的存储库数。
    • 正在进行新索引的存储库计数: 显示索引未完成的存储库数。 这些存储库仍在编制索引,并且部分可搜索。
    • 存储库已完成连续索引: 显示指定时间间隔内处理的提交数。 该数字可能与推送到存储库的总数不完全匹配,因为合并在编制索引时提交。
    • 正在进行连续索引的存储库计数: 显示仍在处理提交的存储库数。 在索引完成之前,这些存储库会显示不完整的结果。
    • 索引作业失败计数: 显示失败的索引作业数。 与这些索引作业关联的存储库可能会显示不完整的结果,直到以后为同一存储库编制索引作业修补失败的索引。
  1. CheckIndexingStatus.ps1使用管理权限执行脚本,并输入以下信息:

    • TFS 配置数据库所在的 SQL Server 实例名称
    • TFS 集合数据库的名称
    • TFS 配置数据库的名称
    • 集合的名称
    • 要检查索引状态的前几天数。
  2. 查看以下输出:

    • 已成功触发集合索引:指示正在编制索引。
    • 存储库索引已完成: 列出其索引已完成且可搜索的存储库。
    • 文件发现阶段中的存储库: 尚未发现文件的存储库。 这些文件在此阶段之后编制索引。
    • 正在进行中的存储库索引: 部分编制索引且应可搜索的存储库,即使结果只是部分。 编制索引可能需要一些时间才能完成。
  3. 监视进度:

    1. CheckIndexingStatus.ps1按间隔执行脚本以编制进度索引。
    2. 如果索引不起作用,或者挂起的文件数在一段时间内未更改,请使用管理权限执行 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\_RepositoryTFVC\_Repository
  • 集合的名称
  • 要重新编制索引的存储库的名称

若要对集合重新编制索引,请执行脚本: TriggerCollectionIndexing.ps1。 系统会提示输入以下信息。

  • Azure DevOps Server配置数据库所在的 SQL Server 实例名称
  • Azure DevOps Server集合数据库的名称
  • Azure DevOps Server配置数据库的名称
  • 集合的名称
  • 要重新编制索引的实体、或AllCodeWorkItemWiki

搜索限制

如果执行灾难恢复 (DR) 操作,并将服务器移回 SQL 数据库的早期快照,请 对所有集合重新编制索引