前言
上一篇文章介绍了企业搜索平台的必要性以及 Fess 的概要。 本文将介绍从启动 Fess 到体验搜索功能的最短步骤。
本文的目的是让您快速了解”使用 Fess 能获得怎样的搜索体验”。 我们将使用 Docker Compose,通过几行命令搭建 Fess 环境,爬取网站并体验搜索功能。
目标读者
首次尝试 Fess 的用户
希望快速进行 PoC(概念验证)以评估是否引入 Fess 的用户
具备 Docker 基本操作能力的用户
所需环境
可使用 Docker 和 Docker Compose 的环境
内存 4GB 以上(推荐 8GB 以上)
互联网连接
前置准备(Linux / WSL2 的情况)
Fess 使用的 OpenSearch 在启动时需要大量的内存映射区域。 在 Linux 或 WSL2 环境中,请使用以下命令提高 vm.max_map_count 的值。
$ sudo sysctl -w vm.max_map_count=262144
此设置在操作系统重启后会恢复默认值。如需永久生效,请将其添加到 /etc/sysctl.conf 中。
$ echo 'vm.max_map_count=262144' | sudo tee -a /etc/sysctl.conf
Note
如果您使用的是 macOS 的 Docker Desktop,则无需进行此设置。
启动 Fess
获取 Docker Compose 文件
Fess 的 Docker Compose 文件已在 GitHub 仓库中公开。 使用以下命令获取。
$ git clone https://github.com/codelibs/docker-fess.git
$ cd docker-fess/compose
compose 目录中准备了若干配置文件。 首先以简单的配置启动。
启动
使用以下命令启动 Fess 和 OpenSearch。
$ docker compose up -d
首次启动时需要下载 Docker 镜像,可能需要几分钟。 可以使用以下命令查看启动状态。
$ docker compose ps
当所有容器的状态均显示为”running”时,表示启动完成。
访问搜索界面
在浏览器中访问 http://localhost:8080/。 如果显示 Fess 的搜索首页,说明已正常启动。
此时索引尚为空,搜索不会返回任何结果。 接下来的步骤将注册爬取目标,使其变为可搜索的状态。
查看管理界面
登录管理界面
访问 http://localhost:8080/admin/,登录管理界面。 默认的认证信息如下。
用户名:
admin密码:
admin
在管理界面的仪表盘中可以一览系统状态。
管理界面的结构
管理界面左侧菜单列出了 Fess 的主要管理功能。 在此先简单了解其概要。
爬虫
用于注册搜索目标的区域。管理 Web、文件系统、数据存储三种类型的爬取配置。
系统
调度器、页面设计、字典等系统整体的管理功能。字典中可以管理同义词和停用词等与搜索质量相关的设置。
系统信息
提供搜索日志、任务日志、爬取信息、备份等各类日志和维护功能。
爬取网站
注册爬取目标
让我们实际爬取一个网站,使其可以被搜索。 这里以 Fess 官方网站为目标。
在管理界面左侧菜单中选择 [爬虫] > [Web]
点击 [新建]
输入以下内容
URL:
https://fess.codelibs.org/ja/爬取目标 URL:
https://fess.codelibs.org/ja/.*最大访问数:
50线程数:
2间隔:
10000
点击 [创建] 保存
这样就完成了以 10 秒间隔、最多爬取 50 个页面的 Fess 官方网站(日语页面)的配置。
执行爬取
仅保存配置并不会开始爬取。 要开始爬取,需要从调度器执行任务。
选择 [系统] > [调度器]
选择”Default Crawler”
点击 [立即开始]
爬取随即开始。 可以通过 [系统信息] > [爬取信息] 查看进度。 50 个页面左右的话,几分钟即可完成爬取。
体验搜索
尝试搜索
爬取完成后,返回搜索界面 http://localhost:8080/ 进行搜索。
例如,输入”インストール”进行搜索,将会显示 Fess 网站中与安装相关的页面作为搜索结果。
搜索结果页面的元素
搜索结果页面包含以下元素。
搜索结果列表
每条结果显示标题、URL 和正文摘要(摘要片段)。 与搜索关键词匹配的部分会高亮显示。
搜索结果数和耗时
搜索结果上方显示命中数和搜索所用时间。
分页导航
当结果跨越多页时,会显示翻页导航。
更多便捷的搜索功能
Fess 除了简单的关键词搜索外,还提供了多种搜索功能。
AND/OR 搜索
用空格分隔多个关键词即为 AND 搜索。 使用 OR 可以进行 OR 搜索。
インストール Docker # AND 搜索(包含两者)
インストール OR Docker # OR 搜索(包含其中之一)
短语搜索
用双引号括起来,可以搜索按该词序匹配的文档。
"全文検索サーバー"
排除搜索
要搜索不包含特定关键词的结果,可以使用减号。
インストール -Windows # 不包含"Windows"的结果
停止与重启环境
停止
搜索体验结束后,使用以下命令停止环境。
$ docker compose down
数据(索引)会被保留,重启后可以恢复到相同状态继续使用。
如需完全清理(包括数据)
如果需要连同卷一起删除,请执行以下命令。
$ docker compose down -v
此时,爬取创建的索引也会被删除。
从搜索体验中看到的可能性
通过以上体验,我们确认了 Fess 的基本运行方式。 在此,假设实际业务中的应用场景,您可能会产生以下疑问。
“能否将公司内部的文件服务器也作为搜索目标?” → 将在 第4回 中介绍
“能否在现有的内部网站中嵌入搜索框?” → 将在 第3回 中介绍
“能否按部门控制可见的信息?” → 将在 第5回 中介绍
“想要搜索 Slack 和 Confluence” → 将在 第6回 中介绍
“想要让 AI 回答问题” → 将在 第19回 中介绍
Fess 能够应对以上所有场景。 本系列将逐步介绍这些功能的实现方法。
总结
本文使用 Docker Compose 启动了 Fess,体验了从网站爬取到搜索的完整流程。
使用 Docker Compose 一条命令启动 Fess + OpenSearch
通过管理界面注册爬取目标,并使用调度器执行
在搜索界面体验关键词搜索、AND/OR 搜索、短语搜索
环境的停止与重启也非常简单
下一篇将介绍如何将 Fess 的搜索功能嵌入到现有的网站或门户中。