概述
在 Fess 中,可以使用脚本在各种场景中实现自定义逻辑。 通过活用脚本,可以灵活控制爬取时的数据处理、搜索结果定制、 计划任务执行等。
支持的脚本语言
Fess 支持以下脚本语言:
| 语言 | 标识符 | 说明 |
|---|---|---|
| Groovy | groovy | 默认脚本语言。与Java兼容,提供强大功能 |
Note
Groovy使用最广泛,本文档中的示例以Groovy编写。
脚本使用场景
数据存储设置
在数据存储连接器中,使用脚本将获取的数据映射到索引字段。
路径映射
可以使用脚本进行URL规范化或路径转换。
计划任务
在计划任务中,可以使用Groovy脚本编写自定义处理逻辑。
基本语法
变量访问
字符串操作
条件分支
日期操作
可用对象
脚本中可使用的主要对象:
| 对象 | 说明 |
|---|---|
data | 从数据存储获取的数据 |
container | DI容器(访问组件) |
container.getComponent("systemHelper") | 系统帮助器 |
container.getComponent("fessConfig") | Fess 的配置 |
安全性
Warning
脚本具有强大功能,请仅使用来自可信来源的脚本。
脚本在服务器上执行
可以访问文件系统和网络
请确保只有具有管理员权限的用户才能编辑脚本
性能
优化脚本性能的提示:
避免复杂处理: 脚本会为每个文档执行
最小化外部资源访问: 网络调用会导致延迟
利用缓存: 考虑缓存重复使用的值
调试
使用日志输出进行脚本调试:
日志级别设置:
app/WEB-INF/classes/log4j2.xml:
参考信息
Groovy脚本指南 - Groovy脚本指南
数据存储爬取 - 数据存储配置指南
调度器 - 调度器配置指南