本页面说明 Fess 的安装、启动、运维时的常见问题及其解决方法。
安装时的问题
Java 未被识别
症状:
或:
原因:
Java 未安装,或 PATH 环境变量未正确设置。
解决方法:
确认 Java 是否已安装:
如未安装,请安装 Java 21:
Debian 12 的标准软件源中没有
openjdk-21-jdk软件包。在 Debian 12 上,请改为按照 Adoptium 的 Linux 安装说明 中适用于 Debian 的步骤安装 Eclipse Temurin 21。设置 JAVA_HOME 环境变量:
要永久设置,请添加到
~/.bashrc或/etc/profile。
插件安装失败
症状:
原因:
网络连接问题
插件版本与 OpenSearch 版本不匹配
权限问题
解决方法:
确认 OpenSearch 版本:
将插件版本与 OpenSearch 版本匹配:
确认权限:
通过代理安装:
启动时的问题
Fess 无法启动
症状:
执行 Fess 的启动命令时出现错误或立即终止。
确认项目:
确认 OpenSearch 是否启动:
如果正常,会返回 JSON 响应。
没有 OpenSearch 响应时,Fess 会重试约 1 分钟后停止启动,并在控制台和
logs/fess.log中输出以下消息:请启动 OpenSearch,或确认
SEARCH_ENGINE_HTTP_URL。新安装的 ZIP 版在使用bin/fess-setup install opensearch设置之前没有 OpenSearch;请参阅 在 Linux 上安装(详细步骤)。确认端口号冲突:
如果端口 8080 已被使用,请在配置文件中更改端口号。
确认日志文件:
从错误消息中找出原因。
确认 Java 版本:
请确认已安装 Java 21 或更高版本。
确认内存不足:
如果内存不足,请调整堆大小或增加系统内存。
OpenSearch 无法启动
症状:
原因:
系统配置不满足 OpenSearch 的要求。
解决方法:
设置 vm.max_map_count:
永久设置:
增加文件描述符上限:
添加以下内容:
设置内存锁定:
添加以下内容:
重启 OpenSearch:
无法创建索引(词典文件路径)
症状:
访问 Fess 时返回 HTTP 404,并且 fess.log 中输出以下错误:
原因:
从 OpenSearch 3.8.0 开始,如果词典文件位于 OpenSearch 配置目录之外,OpenSearch 会拒绝创建索引。 configsync.config_path 和 FESS_DICTIONARY_PATH 指向了配置目录之外的位置(如 data/config/)。
解决方法:
将
configsync.config_path和FESS_DICTIONARY_PATH更改为 OpenSearch 配置目录下的目录。RPM/DEB 版:
/etc/opensearch/dictionary/ZIP 版:
/path/to/opensearch-3.9.0/config/dictionary/
如果已有词典文件,请将其复制到新目录。
按 OpenSearch、Fess 的顺序重新启动。
详情请参阅 在 Linux 上安装(详细步骤)。
端口号冲突
症状:
解决方法:
确认使用中的端口:
停止使用中的进程,或更改 Fess 的端口号
有关更改端口号,请参阅 :doc:端口与网络配置 <../config/setup-port-network>。
连接问题
Fess 无法连接到 OpenSearch
症状:
日志中显示以下错误:
解决方法:
确认 OpenSearch 是否启动:
确认连接 URL
确认
fess.in.sh或fess.in.bat中设置的 URL 是否正确:确认防火墙:
确认端口 9200 是否开放。
确认网络连接
如果在其他主机上运行 OpenSearch:
无法从浏览器访问 Fess
症状:
无法在浏览器中访问 http://localhost:8080/。
解决方法:
确认 Fess 是否启动:
尝试在本地主机访问:
确认防火墙:
确认端口 8080 是否开放。
从其他主机访问
确认 Fess 是否在本地主机以外监听:
如果是
127.0.0.1:8080,请更改配置为0.0.0.0:8080或特定 IP 地址监听。
性能问题
搜索速度慢
原因:
索引大小大
内存不足
磁盘 I/O 慢
查询复杂
解决方法:
增加堆大小
将
FESS_HEAP_SIZE作为环境变量传入并启动 Fess:如果在
bin/fess.in.sh中设置,请将FESS_HEAP_SIZE=4g写在决定堆大小的那一行(设置FESS_MIN_MEM默认值的那一行)之前。即使追加到文件末尾,此时堆大小已经确定,因此不会生效。RPM/DEB 版请在/etc/sysconfig/fess(DEB 版为/etc/default/fess)中设置。同时调整 OpenSearch 的堆大小:
使用 SSD
如果磁盘 I/O 是瓶颈,请迁移到 SSD。
启用缓存
在配置文件中启用查询缓存。
爬取速度慢
原因:
爬取间隔长
目标网站响应慢
线程数少
解决方法:
调整爬取间隔
在管理页面的爬取配置中缩短「间隔」(毫秒单位)。
Warning
间隔太短会对目标网站造成负担。请设置适当的值。
增加线程数
在管理页面中增大爬取配置的「线程数」。默认值:Web 爬取为 1,文件系统爬取为 5。
调整超时值
对于响应慢的网站,请增加超时值。
数据问题
不显示搜索结果
原因:
索引未创建
爬取失败
搜索查询错误
解决方法:
确认索引:
确认 Fess 的索引是否存在。
确认爬取日志
从管理页面的「系统信息」→「日志文件」下载爬取日志(
fess-crawler.log),检查是否有错误。重新执行爬取
从管理页面的「系统」→「调度器」执行「Default Crawler」。
简化搜索查询
先使用简单关键词搜索,确认是否返回结果。
索引损坏
症状:
搜索时出现错误或返回意外结果。
解决方法:
删除并重建索引
Warning
删除索引会丢失所有搜索数据。请务必获取备份。
重启 Fess
索引在 Fess 启动时创建。刚删除之后,用户信息的索引也已丢失,因此无法登录管理页面(
/api/v2/health仍会返回200)。重启 Fess 后,索引、默认作业和初始用户(admin)会被重新创建。重新执行爬取
从管理页面执行「Default Crawler」,重新登记要检索的文档。
Docker 特有的问题
容器无法启动
症状:
docker compose up 容器无法启动。
解决方法:
确认日志:
确认内存不足
增加分配给 Docker 的内存(从 Docker Desktop 的设置)。
确认端口冲突:
确认其他容器是否在使用端口 8080 或 9200。
确认 Docker Compose 文件
确认 YAML 文件是否有语法错误:
容器启动但无法访问 Fess
解决方法:
确认容器状态:
确认日志:
确认网络设置:
Windows 特有的问题
路径问题
症状:
路径包含空格或日文时出现错误。
解决方法:
请安装到不包含空格或日文的目录。
例:
无法注册为服务
解决方法:
使用 NSSM 等第三方工具注册为 Windows 服务。
详情请参阅 在 Windows 上安装(详细步骤)。
其他问题
更改日志级别
要确认详细日志,请将日志级别更改为 DEBUG。
编辑 log4j2.xml:
重置数据库
要重置配置,请删除 OpenSearch 的索引:
Warning
执行此命令会删除所有配置数据。
忘记管理员密码
如果忘记了管理员密码,可以直接更新 OpenSearch 的 fess_user.user 索引中的用户文档来重置密码。密码以 {bcrypt}$2a$... 形式的哈希保存在 password 字段中。更新后无需重启 Fess 即可生效。
生成新密码的哈希。Fess 只接受以
$2a$开头的 bcrypt 哈希,因此请将htpasswd(包含在apache2-utils或httpd-tools软件包中)输出的$2y$替换为$2a$。请将NewPassword替换为新密码:更新 admin 用户文档中的密码。初始状态下 admin 用户的文档 ID 为
YWRtaW4=:要重置其他用户的密码,请用
curl 'http://localhost:9200/fess_user.user/_search?q=name:用户名'查询_id,并指定该 ID。如果为 OpenSearch 启用了认证,请在 curl 中指定认证信息。确认可以使用新密码登录管理页面。如果命令历史中残留了密码,请在登录后通过 [用户 > 用户] 重新设置密码。
支持信息
如果问题无法解决,请使用以下支持资源:
社区支持
Issues: https://github.com/codelibs/fess/issues
报告问题时,请包含以下信息:
Fess 版本
OpenSearch 版本
操作系统和版本
错误消息(从日志中摘录)
重现步骤
商业支持
如需商业支持,请联系 N2SM, Inc.:
收集调试信息
报告问题时,收集以下信息会有所帮助:
版本信息(
bin/fess -v从 15.9 起可用):系统信息:
日志文件:
配置文件(删除机密信息后):
OpenSearch 状态: