小遥搜索v1.8.0版本更新【钉钉文档+知识库支持】

版本预览

v1.8.0 版本更新说明

发布日期 :2026年4月13日
版本类型 :重大功能更新
主题:钉钉文档+知识库支持


📋 版本概述

小遥搜索 v1.8.0 正式支持 钉钉文档数据源 ,配合小遥搜索钉钉导出工具(https://github.com/dtsola/xiaoyaosearch-dingding-export-md),让您能够搜索从钉钉导出的本地文档,在搜索结果中清晰标识钉钉文档来源,并支持一键跳转到钉钉原文。

核心亮点

  • 📄 钉钉文档识别:自动识别从钉钉导出的文档(支持 .docx、.pdf 等格式)
  • 🗂️ 元数据文件解析:通过 .xyddjson 元数据文件提取文档信息
  • 🔗 原文链接跳转:搜索结果支持直接跳转到钉钉原文
  • 🎨 钉钉标识展示:搜索结果中使用蓝色"钉钉"标识区分数据来源
  • 🔌 插件化架构:基于插件化框架,扩展数据源更灵活
  • 🛠️ 配套导出工具:独立的钉钉导出浏览器插件,支持批量导出

✨ 新增功能

钉钉文档数据源支持

功能定位

为小遥搜索添加钉钉文档数据源识别能力,让用户能够搜索从钉钉导出的本地文档(.docx、.pdf、.xlsx 等)。

使用流程

复制代码
┌─────────────────┐      ┌──────────────────┐      ┌─────────────────┐
│  钉钉文档/知识库  │ ───▶ │  钉钉导出工具      │ ───▶ │  本地文件+.xyddjson│
└─────────────────┘      └──────────────────┘      └─────────────────┘
                                                           │
                                                           ▼
                                                    ┌─────────────────┐
                                                    │  小遥搜索        │
                                                    │  自动识别        │
                                                    └─────────────────┘
                                                           │
                                                           ▼
                                                    ┌─────────────────┐
                                                    │  搜索+跳转原文   │
                                                    └─────────────────┘

使用场景

|------|-------------------|-------------|
| 使用场景 | 描述 | 价值 |
| 产品经理 | 搜索本地产品文档 + 钉钉需求文档 | 统一搜索入口,提升效率 |
| 开发者 | 搜索本地代码 + 钉钉技术方案 | 快速定位技术资料 |
| 团队协作 | 将钉钉团队知识库导出后本地搜索 | 知识沉淀与备份 |

与飞书方案对比

|-------|--------|----------|---------|
| 对比项 | 飞书方案 | 钉钉方案 | 钉钉优势 |
| 元数据位置 | 文件内容末尾 | 独立JSON文件 | 结构化、易维护 |
| 解析方式 | 正则表达式 | JSON解析 | 更可靠、更快速 |
| 解析性能 | ~1ms | <1ms | 更快 |
| 可扩展性 | 仅限飞书 | 可用于其他平台 | 通用性强 |


钉钉导出工具(配套)

小遥搜索钉钉导出工具是独立的浏览器插件,支持将钉钉文档/知识库导出为常用格式,并自动生成元数据文件。

工具特性

  • ✅ 支持浏览器插件形式(Chrome、Edge等)
  • ✅ 支持单个文档导出
  • ✅ 支持批量文档导出
  • ✅ 支持文件夹递归导出
  • ✅ 自动生成 .xyddjson 元数据文件
  • ✅ 支持多种导出格式(.docx、.pdf、.xlsx、.pptx、.txt等)
  • ✅ 保留原始文档结构

安装方式

  1. 下载浏览器插件(.crx 文件)
  2. 在浏览器中打开 chrome://extensions/
  3. 启用"开发者模式"
  4. 拖拽插件文件进行安装

快速开始

复制代码
1. 安装钉钉导出浏览器插件
2. 打开钉钉文档
3. 点击插件图标,选择导出格式
4. 下载文件和 .xyddjson 元数据文件
5. 将文件放到小遥搜索扫描目录

元数据文件格式

导出的文档会自动生成同名元数据文件:

复制代码
项目报告.docx              (导出文件)
项目报告.docx.xyddjson      (元数据文件)

元数据内容示例

复制代码
{
  "version": "1.0.0",
  "source": "dingtalk-docs",
  "exportTool": "xiaoyaosearch-dingding-export",
  "exportToolVersion": "1.0.0",
  "exportTime": "2026-04-08T15:30:00.000Z",
  "file": {
    "fileName": "项目报告.docx",
    "originalName": "项目报告",
    "dentryUuid": "A1B2C3D4E5F6G7H8",
    "url": "https://alidocs.dingtalk.com/i/nodes/A1B2C3D4E5F6G7H8"
  }
}

小遥搜索会自动读取这些元数据文件,并将文档标记为"钉钉"数据源。

项目地址https://github.com/dtsola/xiaoyaosearch-dingding-export-md


搜索结果钉钉标识

标识样式

  • 图标:云朵图标(CloudOutlined)
  • 颜色:蓝色(#0089FF - 钉钉品牌色)
  • 文本:显示"钉钉"来源标识

搜索结果展示

复制代码
┌────────────────────────────────────────────────────┐
│  🔍 搜索结果                                         │
├────────────────────────────────────────────────────┤
│  📄 产品需求文档_v1.2.docx                         │
│     ...摘要内容...                                  │
│     💾 本地文件  │  🕒 2026-04-01                   │
├────────────────────────────────────────────────────┤
│  📄 钉钉技术方案.pdf                                │
│     ...摘要内容...                                  │
│     🔵 钉钉  │  🔗 原文链接  │  🕒 2026-04-05        │
└────────────────────────────────────────────────────┘

原文链接跳转

跳转功能

适用条件

  • 文档包含 .xyddjson 元数据文件
  • 元数据文件中包含有效的 URL 字段
  • 用户有钉钉文档访问权限

📚 技术实现

插件化架构

技术栈

  • Python ABC - 插件接口定义
  • JSON - 元数据解析
  • Pathlib - 文件路径操作
  • importlib - 插件动态加载

插件实现

复制代码
class DingdingDataSource(DataSourcePlugin):
    """钉钉数据源插件"""

    def get_file_source_info(self, file_path: str, content: str = None) -> Dict[str, Any]:
        """从钉钉导出的元数据文件中提取信息"""
        # 1. 检查是否存在同名 .xyddjson 文件
        # 2. 读取并解析 JSON 元数据
        # 3. 验证 source 字段是否为 'dingtalk-docs'
        # 4. 提取 dentryUuid、url、exportTime
        # 5. 返回标准化的数据源信息
        pass

元数据解析流程

复制代码
检查文件路径 + '.xyddjson'
     ↓
文件是否存在?
     ↓
读取 JSON 文件
     ↓
验证 source 字段
     ↓
提取元数据(url, dentryUuid)
     ↓
返回 source_type=dingding, source_url=xxx

性能优势

|-------|-----------|------------|-------|
| 性能指标 | 飞书 | 钉钉 | 钉钉优势 |
| 解析速度 | ~1ms | <1ms | 更快 |
| 文件IO | 需读取文件内容 | 仅读取元数据文件 | 减少IO |
| 内存占用 | 中等(需缓存内容) | 低(JSON文件小) | 内存效率高 |
| 解析复杂度 | 正则匹配 | JSON解析 | 更可靠 |


数据库变更

说明:数据库表结构已在 v1.2.0 插件化架构版本中完成

已有字段

  • source_type TEXT DEFAULT 'filesystem' - 数据源类型(filesystem/yuque/feishu/dingding)
  • source_url TEXT - 原文链接
  • source_id TEXT - 文档唯一ID(dentryUuid)

无需修改:本特性直接复用现有字段,无需数据库迁移。


前端支持

新增支持

  • 数据源类型映射:dingding: t('searchResult.sourceDingding')
  • 图标映射:dingding: CloudOutlined
  • 样式定义:.source-type.source-dingding 蓝色样式(#0089FF)

国际化配置

复制代码
{
  "searchResult": {
    "sourceDingding": {
      "zh-CN": "钉钉",
      "en-US": "DingTalk"
    }
  }
}

🔄 升级指南

从 v1.7.0 升级到 v1.8.0:
https://www.dtsola.com/archives/a685353b-7e61-4e02-b24c-620f9e65f621


📦 下载地址

  • 小遥搜索 v1.8.0
  • 钉钉导出工具

📖 使用示例

场景一:产品经理搜索需求文档

背景:产品经理将需求文档写在钉钉中,同时本地有产品设计的 Markdown 文档。

操作步骤

  1. 安装钉钉导出浏览器插件
  2. 打开钉钉需求文档,点击插件图标,选择导出格式(如 .docx)
  3. 导出工具自动下载:
    • 产品需求.docx
    • 产品需求.docx.xyddjson(元数据文件)
  1. 将文件放到小遥搜索扫描目录(如 D:\docs\dingding
  2. 在小遥搜索中添加扫描路径:D:\docs\dingding
  3. 搜索关键词"用户登录"
  4. 搜索结果同时显示:
    • 本地产品设计文档(来源:本地文件)
    • 钉钉需求文档(来源:钉钉)
  1. 点击钉钉需求文档的"原文链接",跳转到钉钉原文查看最新版本

场景二:开发者搜索技术方案

背景:开发团队在钉钉中维护技术规范文档,需要与本地代码一起搜索。

操作步骤

  1. 批量导出钉钉技术文档:
    • 选择多个技术文档
    • 点击导出,选择格式(.pdf)
    • 自动生成每个文档的 .xyddjson 文件
  1. 将导出的文件放到小遥搜索扫描目录(如 D:\docs\tech
  2. 在小遥搜索中添加扫描路径:D:\docs\tech
  3. 搜索技术关键词"API设计"
  4. 快速定位到钉钉中的技术规范文档

场景三:知识库定期备份

背景:企业知识库需要定期备份到本地,防止数据丢失。

操作步骤

  1. 定期使用钉钉导出工具导出知识库文档
  2. 将导出的文件放到指定备份目录
  3. 小遥搜索自动索引新增/更新的文档
  4. 随时搜索备份的知识库内容

❓ 常见问题

Q1: 如何使用钉钉文档搜索?

A: 使用钉钉导出工具导出钉钉文档,放到小遥搜索的扫描目录即可,系统会自动识别。

导出方式:

  1. 安装钉钉导出浏览器插件
  2. 打开钉钉文档
  3. 点击插件图标,选择导出格式
  4. 下载文件和 .xyddjson 元数据文件
  5. 将文件放到小遥搜索扫描目录

Q2: .xyddjson 文件是什么?

A: .xyddjson 是钉钉导出工具自动生成的元数据文件,包含文档的原始信息。

文件作用

  • 标识文档来源(钉钉)
  • 存储原文链接
  • 记录导出时间
  • 保存文档唯一ID(dentryUuid)

文件格式

  • 标准 JSON 格式
  • 与原文件同名,扩展名为 .xyddjson
  • 文件大小约 1KB

Q3: 可以删除 .xyddjson 文件吗?

A: 可以删除,但删除后文档将无法被识别为钉钉数据源。

影响说明

  • 删除后文档仍可被搜索
  • 但会被标记为"本地文件"而非"钉钉"
  • 无法跳转到钉钉原文
  • 建议保留元数据文件

Q4: 钉钉原文链接会过期吗?

A: 如果您有钉钉文档的访问权限,原文链接长期有效。

权限要求

  • 文档对您可见(公开或您有访问权限)
  • 钉钉账号正常登录
  • 文档未被删除

Q5: 支持哪些导出格式?

A: 钉钉导出工具支持多种格式:

|---------|-------|-----------|
| 格式 | 扩展名 | 说明 |
| Word文档 | .docx | 推荐格式,保留格式 |
| PDF文档 | .pdf | 适合只读文档 |
| Excel表格 | .xlsx | 保留表格格式 |
| PPT演示 | .pptx | 保留演示格式 |
| 纯文本 | .txt | 纯文本格式 |

所有格式都会生成对应的 .xyddjson 元数据文件。


Q6: 搜索不到钉钉文档怎么办?

A: 请检查以下几点:

  1. 确认文档已导出到小遥搜索的扫描目录
  2. 确认 .xyddjson 元数据文件与文档在同一目录
  3. 确认元数据文件内容正确(JSON格式,source为 dingtalk-docs)
  4. 确认索引已构建完成(查看索引管理页面)
  5. 尝试重新索引该目录

Q7: 与飞书文档搜索有什么区别?

A: 主要区别如下:

|-------|--------|-----------|
| 对比项 | 飞书 | 钉钉 |
| 导出方式 | 用户手动导出 | 浏览器插件自动导出 |
| 元数据位置 | 文件内容末尾 | 独立JSON文件 |
| 解析方式 | 正则表达式 | JSON解析 |
| 解析性能 | ~1ms | <1ms |
| 可扩展性 | 仅限飞书 | 可用于其他平台 |

钉钉方案优势

  1. 元数据独立存储,更易维护
  2. JSON格式更可靠、更易解析
  3. 性能更好(直接读取元数据文件)
  4. 格式可扩展到其他平台

Q8: 元数据文件会占用很多空间吗?

A: 不会,每个 .xyddjson 文件约 1KB,对存储空间影响很小。

空间占用

  • 100个文档 → 约 100KB(0.1MB)
  • 1000个文档 → 约 1MB
  • 10000个文档 → 约 10MB

存储建议

  • 元数据文件很小,建议保留
  • 可以与原文件一起管理
  • 删除不影响原文件使用

🙏 致谢

感谢以下开源项目的支持:

特别感谢所有贡献者和用户的支持!


让我们一起打造更好的本地搜索体验! 🚀

小遥项目:https://project.xiaoyaosai.com/


📝 版本历史

|--------|------------|------------------------|
| 版本 | 日期 | 主要更新 |
| v1.8.0 | 2026-04-13 | 钉钉文档数据源支持 |
| v1.7.0 | 2026-03-31 | 飞书文档数据源支持 |
| v1.6.0 | 2026-03-26 | 云端嵌入模型支持 + Bug 修复 |
| v1.5.0 | 2026-03-20 | Agent Skills 支持 |
| v1.4.0 | 2026-03-15 | MCP 服务器支持 |
| v1.3.0 | 2026-03-10 | OpenAI 云端模型支持 + Bug 修复 |
| v1.2.0 | 2026-03-05 | 插件化架构 + 语雀数据源 |
| v1.1.0 | 2026-02-28 | i18n 国际化支持 |
| v1.0.0 | 2026-02-20 | MVP 版本发布 |


#独立开发者 #知识工作者 #知识库 #AI工具 #内容创作者 #一人公司 #ai搜索 #dify #ragflow #vibecoding

相关推荐
CodeSheep4 小时前
宇树科技的最新工资和招人标准
前端·后端·程序员
韩数5 小时前
为了能同时开发多个项目,我烧了几亿 token 开源了一个轻量级 AI-Native IDE
后端·程序员·github
xiezhr5 小时前
AI时代,技术只要学得慢,就可以不用学了
人工智能·程序员·openai
刀法如飞17 小时前
AI Agent实战:我用Gemini批量完成了《道德经》解读
程序员·aigc·ai编程
小陈同学呦17 小时前
OrbStack:一键将你的 Mac 变为本地服务器
程序员
小陈同学呦17 小时前
什么是 frp
程序员
两万五千个小时1 天前
Claude Code 源码:Agent 工具 — 多 Agent 的路由与定义机制
人工智能·程序员·架构
程序员鱼皮1 天前
SBTI 爆火后,我做了个程序员版的 CBTI。。已开源 + 附开发过程
ai·程序员·开源·编程·ai编程
程序员cxuan1 天前
今天看到很多人讨论 Linux 终于要接受 AI 提交的代码了,我的第一反应是,真的吗?作为喷 AI 最狠的祖师爷到底咋看这件事儿?
后端·程序员