前言
上一回介绍了将 Fess 的搜索功能嵌入到现有 Web 站点的方法。 然而在实际的企业环境中,信息不仅存在于 Web 站点,还分散在文件服务器、云存储等各种位置。
本文将介绍如何将多个数据源集成到 Fess 中,构建一个让用户通过单一搜索框即可跨源检索所有文档的环境。
目标读者
公司内部文档分散在多个位置的人员
对文件服务器或云存储的搜索功能不满意的人员
已按照第2回的步骤完成 Fess 启动
场景
假设一家中等规模的企业。该企业的文档分散在以下位置。
内部 Web 站点: 内部门户、内部博客
文件服务器: 各部门的共享文件夹(SMB/CIFS)
本地文件: 服务器上的特定目录
员工想找某份资料时,必须分别在各个工具中进行搜索。 我们将通过 Fess 实现统一管理,使员工能够从一个搜索框进行跨源检索。
数据源设计
构建跨源检索时,首先重要的是设计”将什么内容以何种方式纳入检索范围”。
整理检索对象
首先,整理要纳入检索范围的数据源。
| 数据源 | 类型 | 规模估算 | 更新频率 |
|---|---|---|---|
| 内部门户 | Web 爬取 | 数百页 | 每周 |
| 技术博客 | Web 爬取 | 数十至数百页 | 不定期 |
| 共享文件夹 | 文件爬取 | 数万个文件 | 每天 |
| 归档 | 文件爬取 | 数千个文件 | 每月 |
标签分类设计
使用 Fess 的”标签”功能,可以对检索对象进行分类。 用户在搜索时可以选择标签,缩小到特定类别进行检索。
在本次场景中,设置以下标签。
门户: 内部门户和博客的信息
共享文件: 文件服务器中的文档
归档: 过往资料
标签设置
在管理界面中选择 [爬虫] > [标签]
点击 [新建] 创建标签
为每个标签设置”名称”和”值”。 值使用英文字母和数字设置,用于与爬取配置进行关联。
爬取配置的构建
Web 爬取的设置
以下是内部门户的爬取配置。
[爬虫] > [Web] > [新建]
设置以下内容
URL:
https://portal.example.com/爬取目标 URL:
https://portal.example.com/.*排除爬取的 URL:
https://portal.example.com/admin/.*最大访问数:
500线程数:
3间隔:
5000标签: 门户
点击 [创建]
通过设置排除 URL,可以排除管理界面等不需要纳入检索范围的页面。
文件爬取的设置
以下是共享文件夹的爬取配置。
[爬虫] > [文件系统] > [新建]
设置以下内容
路径:
smb://fileserver.example.com/shared/爬取目标路径:
smb://fileserver.example.com/shared/.*排除爬取的路径:
.*\\.tmp$最大访问数:
10000线程数:
5间隔:
1000标签: 共享文件
点击 [创建]
SMB 认证设置
如果文件服务器需要认证,则需要配置文件认证。
[爬虫] > [文件认证] > [新建]
设置以下内容
主机名:
fileserver.example.com方案:
Samba用户名: 服务账户的用户名
密码: 服务账户的密码
点击 [创建]
本地文件爬取
要爬取服务器上的特定目录时,直接指定文件路径。
[爬虫] > [文件系统] > [新建]
设置以下内容
路径:
file:///data/archive/爬取目标路径:
file:///data/archive/.*排除爬取的路径:
.*\\.(log|bak)$最大访问数:
5000标签: 归档
点击 [创建]
爬取调度设计
爬取多个数据源时,调度设计非常重要。 如果同时执行所有爬取任务,不仅会给服务器资源造成负载,还会对目标服务器产生较大压力。
分散调度
根据数据源的更新频率,分散爬取调度。
| 数据源 | 执行时间 | 原因 |
|---|---|---|
| 内部门户 | 每天 2:00 | 页面数较少,可在短时间内完成 |
| 共享文件夹 | 每天 3:00 | 文件数较多,安排在夜间执行 |
| 归档 | 每周日 4:00 | 更新频率低,每周执行一次即可 |
调度器设置
在管理界面的 [系统] > [调度器] 中,可以设置爬取任务的执行时间。 默认的”Default Crawler”任务会一次性执行所有爬取配置。
通过路径映射优化搜索结果
爬取的 URL 或文件路径对用户来说可能难以理解。 使用路径映射功能,可以转换搜索结果中显示的 URL。
设置示例
将文件服务器的路径转换为用户可通过浏览器访问的 URL。
[爬虫] > [路径映射] > [新建]
设置以下内容
正则表达式:
smb://fileserver.example.com/shared/(.*)替换:
https://fileserver.example.com/shared/$1
这样,点击搜索结果中的链接即可通过浏览器直接访问文件。
跨源检索的使用
使用标签进行筛选检索
爬取完成后,在搜索页面体验跨源检索。
搜索页面会显示标签的选项卡或下拉菜单。 用户选择”全部”即可进行跨源检索,选择特定标签则可限定在该类别内进行检索。
例如,搜索”项目计划”时,搜索结果会返回门户的文章、共享文件夹中的 Word 文件以及归档中的 PDF,这些结果混合在一起呈现。 如果使用”共享文件”标签进行筛选,则可以仅限定为文件服务器中的文档。
搜索结果排序
默认情况下,搜索结果按照与搜索关键词的相关度(分数)排序。 无论数据源的类型如何,相关性最高的文档会优先显示。
总结
本文介绍了如何将多个数据源集成到 Fess 中,构建跨源检索环境。
Web 站点、文件服务器、本地文件的3种爬取配置
通过标签进行分类和筛选检索
爬取调度的分散设计
通过路径映射进行 URL 转换
引入跨源检索后,用户无需关心”文档存储在哪里”,即可找到所需的信息。
下一回将介绍根据部门权限控制搜索结果的基于角色的搜索设计。