概述
Microsoft 365连接器提供从Microsoft 365服务(OneDrive、OneNote、Teams、SharePoint)获取数据并注册到 Fess 索引的功能。
此功能需要 fess-ds-microsoft365 插件。
支持的服务
OneDrive: 用户云端硬盘、组云端硬盘、共享文档
OneNote: 笔记本(站点、用户、组)
Teams: 频道、消息、聊天
SharePoint Document Libraries: 文档库元数据
SharePoint Lists: 列表和列表项
SharePoint Pages: 站点页面、新闻文章
前提条件
需要安装插件
需要Azure AD应用程序注册
需要Microsoft Graph API权限设置和管理员同意
Java 21以上、Fess 15.2.0以上
插件安装
方法1: 直接放置JAR文件
方法2: 从源代码构建
安装后,请重启 Fess。
配置方法
从管理界面的「爬虫」→「数据存储」→「新建」进行配置。
基本设置
| 项目 | 设置示例 |
|---|---|
| 名称 | Microsoft 365 OneDrive |
| 处理器名称 | OneDriveDataStore / OneNoteDataStore / TeamsDataStore / SharePointDocLibDataStore / SharePointListDataStore / SharePointPageDataStore |
| 启用 | 开 |
参数设置(通用)
通用参数列表
Azure AD应用程序注册
1. 在Azure Portal注册应用程序
在 https://portal.azure.com 打开Azure Active Directory:
点击「应用注册」→「新注册」
输入应用程序名称
选择支持的账户类型
点击「注册」
2. 创建客户端密钥
在「证书和密钥」中:
点击「新建客户端密钥」
设置描述和有效期
复制密钥值(之后无法再查看,请注意)
3. 添加API权限
在「API权限」中:
点击「添加权限」
选择「Microsoft Graph」
选择「应用程序权限」
添加所需权限(参见下文)
点击「授予管理员同意」
各数据存储所需权限
OneDriveDataStore
必需权限:
Files.Read.All
条件权限:
User.Read.All- user_drive_crawler=true 时Group.Read.All- group_drive_crawler=true 时Sites.Read.All- shared_documents_drive_crawler=true 时
OneNoteDataStore
必需权限:
Notes.Read.All
条件权限:
User.Read.All- user_note_crawler=true 时Group.Read.All- group_note_crawler=true 时Sites.Read.All- site_note_crawler=true 时
TeamsDataStore
必需权限:
Team.ReadBasic.AllGroup.Read.AllChannel.ReadBasic.AllChannelMessage.Read.AllChannelMember.Read.AllUser.Read.All
条件权限:
Chat.Read.All- 指定chat_id时Files.Read.All- append_attachment=true 时
脚本设置
OneDrive
可用字段:
file.name- 文件名file.description- 文件描述file.contents- 文本内容file.mimetype- MIME类型file.filetype- 文件类型file.created- 创建时间file.last_modified- 最后更新时间file.size- 文件大小file.web_url- 在浏览器中打开的URLfile.roles- 访问权限
OneNote
可用字段:
notebook.name- 笔记本名称notebook.contents- 节和页面的整合内容notebook.size- 内容大小(字符数)notebook.created- 创建时间notebook.last_modified- 最后更新时间notebook.web_url- 在浏览器中打开的URLnotebook.roles- 访问权限
Teams
可用字段:
message.title- 消息标题message.content- 消息内容message.created_date_time- 创建时间message.last_modified_date_time- 最后更新时间message.web_url- 在浏览器中打开的URLmessage.roles- 访问权限message.from- 发送者信息
各数据存储的附加参数
OneDrive
OneNote
Teams
SharePoint Document Libraries
SharePoint Lists
SharePoint Pages
使用示例
OneDrive全云端硬盘爬取
参数:
脚本:
爬取特定团队的Teams消息
参数:
脚本:
故障排除
认证错误
症状: Authentication failed 或 Insufficient privileges
确认事项:
确认租户ID、客户端ID、客户端密钥是否正确
确认在Azure Portal中是否授予了所需的API权限
确认是否授予了管理员同意
确认客户端密钥的有效期
API速率限制错误
症状: 429 Too Many Requests
解决方法:
减少 ``number_of_threads``(设置为1或2)
增加爬取间隔
设置
ignore_error=true继续处理
无法获取数据
症状: 爬取成功但文档数为0
确认事项:
确认目标数据是否存在
确认API权限是否正确设置
确认用户/组云端硬盘爬虫设置
在日志中确认错误信息
大量数据爬取
解决方法:
分割成多个数据存储(按站点、云端硬盘等)
通过计划设置分散负载
调整
number_of_threads进行并行处理只爬取特定文件夹/站点
参考信息
数据存储连接器概述 - 数据存储连接器概述
Google Workspace连接器 - Google Workspace连接器
数据存储爬取 - 数据存储配置指南