概述
数据库连接器提供从JDBC兼容的关系数据库获取数据并 注册到 Fess 索引的功能。
此功能需要安装 fess-ds-db 插件。
支持的数据库
支持所有JDBC兼容的数据库。主要包括:
MySQL / MariaDB
PostgreSQL
Oracle Database
Microsoft SQL Server
SQLite
H2 Database
前提条件
需要JDBC驱动程序
需要对数据库的读取访问权限
获取大量数据时,适当的查询设计很重要
JDBC驱动程序安装
将JDBC驱动程序放置在 lib/ 目录中:
重启 Fess 以加载驱动程序。
设置方法
从管理界面的”爬虫”→”数据存储”→”新建”进行设置。
基本设置
| 项目 | 设置示例 |
|---|---|
| 名称 | Products Database |
| 处理器名 | DatabaseDataStore |
| 启用 | 开 |
参数设置
MySQL/MariaDB示例:
PostgreSQL示例:
参数列表
脚本设置
将SQL列名映射到索引字段:
可用字段:
<column_name>- SQL查询的结果列(直接使用列标签名称访问)
SQL查询设计
高效查询
处理大量数据时,查询性能很重要:
Note
SQL查询将原样发送到数据库,不支持参数绑定(如 :last_crawl_date)。请直接在SQL中写入具体的日期值。
增量抓取
只获取更新记录的方法:
URL生成
文档的URL在脚本中生成:
多字节字符支持
处理包含中文等多字节字符的数据时:
MySQL
PostgreSQL
PostgreSQL通常默认使用UTF-8。如有需要:
安全性
数据库认证信息保护
Warning
在配置文件中直接写入密码存在安全风险。
推荐方法:
使用环境变量
使用 Fess 的加密功能
使用只读用户
最小权限原则
只为数据库用户授予必要的最小权限:
使用示例
产品目录搜索
参数:
脚本:
知识库文章
参数:
脚本:
故障排除
找不到JDBC驱动程序
症状:ClassNotFoundException 或 No suitable driver
解决方法:
确认JDBC驱动程序是否放置在
lib/中确认驱动程序类名是否正确
重启 Fess
连接错误
症状:Connection refused 或认证错误
检查项:
数据库是否已启动
主机名、端口号是否正确
用户名、密码是否正确
防火墙设置
查询错误
症状:SQLException 或SQL语法错误
检查项:
直接在数据库中执行SQL查询进行测试
确认列名是否正确
确认表名是否正确