前言
软件开发团队在日常工作中使用着各种不同的工具。 代码存放在 Git 仓库中,规格说明书在 Confluence 中,任务在 Jira 中,日常沟通在 Slack 中。 虽然每个工具都有搜索功能,但当面对”那个讨论是在哪里进行的?”这样的问题时,逐一搜索所有工具是非常低效的。
本文将介绍如何将开发团队日常使用的各种工具中的信息汇集到 Fess,构建一个可以统合搜索的知识中心。
目标读者
软件开发团队的负责人和基础设施管理员
希望跨工具搜索开发相关信息的人员
想要了解数据存储插件基本用法的人员
场景
实现对开发团队(20人)信息的统合搜索。
什么是数据存储爬取
Web 爬取和文件爬取是通过追踪 URL 或文件路径来收集文档的。 而要收集 SaaS 工具中的信息,则需要使用”数据存储爬取”。
数据存储爬取通过各工具的 API 获取数据,并将其注册到 Fess 的索引中。 Fess 为每个工具提供了对应的数据存储插件。
插件的安装
数据存储插件可以从 Fess 的管理界面进行安装。
在管理界面中选择 [系统] > [插件]
确认已安装插件的列表
点击 [安装] 按钮进入安装页面,从 [远程] 选项卡安装所需的插件
本场景中将使用以下插件。
fess-ds-git: 爬取 Git 仓库fess-ds-atlassian: 爬取 Confluence / Jirafess-ds-slack: 爬取 Slack 消息
各数据源的配置
Git 仓库的配置
爬取 Git 仓库,将代码和文档纳入搜索范围。
[爬虫] > [数据存储] > [新建]
处理器名称: 选择 GitDataStore
配置参数
参数配置示例
脚本配置示例
在 uri 中指定仓库的 URL,在 username / password 中指定认证信息。对于私有仓库,请将访问令牌设置到 password 中。include_pattern 可以使用正则表达式来筛选需要爬取的文件扩展名。
Confluence 的配置
将 Confluence 的页面和博客文章纳入搜索范围。
[爬虫] > [数据存储] > [新建]
处理器名称: 选择 ConfluenceDataStore
配置参数
参数配置示例
脚本配置示例
在 home 中指定 Confluence 的 URL,通过 auth_type 选择认证方式。对于 Confluence Cloud,使用 basic 认证,并将 API 令牌设置到 basic.password 中。
Jira 的配置
将 Jira 的工单(Issue)纳入搜索范围。
使用同一 fess-ds-atlassian 插件中包含的 JiraDataStore 处理器。 可以使用 JQL(Jira Query Language)来筛选需要爬取的工单。 例如,可以仅爬取特定项目的工单,或者仅爬取特定状态(非 Closed)的工单。
[爬虫] > [数据存储] > [新建]
处理器名称: 选择 JiraDataStore
配置参数
参数配置示例
脚本配置示例
在 issue.jql 中指定 JQL 查询,以筛选需要爬取的工单。
Slack 的配置
将 Slack 的消息纳入搜索范围。
[爬虫] > [数据存储] > [新建]
处理器名称: 选择 SlackDataStore
配置参数
参数配置示例
脚本配置示例
在 token 中指定 Slack Bot 的 OAuth 令牌。通过 channels 指定需要爬取的频道,如果要爬取所有频道,请设置为 *all。如果要爬取私有频道,需要设置 include_private=true,并且需要提前将 Bot 邀请到该频道。
标签的使用
通过标签区分信息来源
通过为每个数据源设置标签,可以在搜索时切换信息来源。
code: 来自 Git 仓库的代码docs: Confluence 的文档tickets: Jira 的工单discussions: Slack 的消息
用户可以通过”全部”进行跨源搜索,也可以根据需要通过标签进行筛选。
提升搜索质量
利用文档提升
在开发团队的知识中心中,并非所有文档的重要性都相同。 例如,可以考虑以下优先级顺序。
Confluence 的文档(正式的规格说明书和操作手册)
Jira 的工单(最新的问题和进行中的任务)
Git 仓库(代码和 README)
Slack 的消息(讨论记录)
使用文档提升功能,可以提高符合特定条件的文档的搜索评分。 在管理界面的 [爬虫] > [文档提升] 中,可以根据 URL 模式或标签来设置提升值。
利用关联内容
通过在搜索结果中显示”关联内容”,可以帮助用户更快地找到所需信息。 例如,在搜索 Confluence 的设计文档时,如果相关的 Jira 工单作为”关联内容”显示出来,将会非常方便。
运维注意事项
爬取调度
为每个数据源设置合适的爬取频率。
应对 API 速率限制
SaaS 工具的 API 存在速率限制。 需要适当设置爬取间隔,以避免触发 API 的速率限制。 特别是 Slack API 的速率限制较为严格,因此在设置爬取间隔时需要留有余量。
访问令牌管理
数据存储插件的配置需要各工具的 API 访问令牌。 从安全角度出发,请注意以下几点。
最小权限原则: 使用只读访问令牌
定期轮换: 定期更新令牌
使用专用账户: 使用服务账户而非个人账户
总结
本文介绍了如何将开发团队日常使用的各种工具中的信息汇集到 Fess,构建统合搜索的知识中心。
通过数据存储插件收集 Git、Confluence、Jira、Slack 的数据
通过标签为开发者提供便捷的搜索体验
通过文档提升控制信息的优先级
API 速率限制和令牌管理等运维注意事项
借助开发团队的知识中心,可以快速回答”那个讨论在哪里?””那份规格说明书在哪里?”等问题,实现高效的信息检索环境。
下一期将介绍云存储的跨平台搜索。