首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >十分钟使用 Elastic 和 Jina Embeddings v5 打造 OpenClaw 智能文档搜索

十分钟使用 Elastic 和 Jina Embeddings v5 打造 OpenClaw 智能文档搜索

作者头像
点火三周
发布2026-02-28 17:02:11
发布2026-02-28 17:02:11
1001
举报
文章被收录于专栏:Elastic Stack专栏Elastic Stack专栏

字数 1704,阅读大约需 9 分钟

最近,OpenClaw 在开发者社区火得一塌糊涂。作为一个能够打通 WhatsApp、Telegram、Discord 和 iMessage 的 AI Agent 网关,它简直就是连接你和 AI 的“任意门”。

但是,当你想深入了解 OpenClaw 的技术细节时,面对浩如烟海的文档,是不是也有点不知所措?

别担心!今天我们不仅要带你了解 OpenClaw,还要手把手教你利用 Elastic Open Crawler(注意:这可不是 OpenClaw 哦,别搞混了😉)和 Jina Embeddings v5,在本地搭建一个强大的多语言语义搜索引擎。

准备好了吗?让我们开始这段奇妙的旅程!

🏗️ 架构概览:三剑客的完美配合

我们的目标很简单:爬取 OpenClaw 的官方文档,将其转化为向量,然后通过自然语言与它对话。为了实现这一点,我们集结了三位“大将”:

  1. 1. OpenClaw (Crawly):这是我们今天的主角之一(其实是配角),一个基于 Elastic Open Web Crawler 的轻量级爬虫服务。它负责像勤劳的小蜜蜂一样,把网页内容采集回来。
  2. 2. Elasticsearch:我们的数据大本营,负责存储文档和向量,并提供强大的检索能力。
  3. 3. Jina Embeddings v5:这是灵魂所在!它支持 100 多种语言,还能在保持精度的同时大幅压缩向量维度(比如从 1024 压缩到 128),简直是“既要马儿跑,又要马儿少吃草”的典范。

🛠️ 第一步:环境准备

首先,你需要确保本地已经安装了 Docker 和 Docker Compose。

我们将使用一个名为 elastic-crawler-control 的项目(我们亲切地称它为 Crawly),它提供了一个友好的界面来管理爬虫任务。

1. 启动服务

在项目根目录下,直接运行:

代码语言:javascript
复制
git clone https://github.com/ugosan/elastic-crawler-control
cd elastic-crawler-control
docker-compose up -d --build

这会启动两个服务:

  • Frontend (http://localhost:16700): 一个漂亮的 React 界面。
  • Crawler Service (http://localhost:8000): 负责干脏活累活的后端。

2. 配置 Elasticsearch 连接

Crawly 需要知道往哪里写数据。在 env.local 文件中配置你的本地 ES 地址:

代码语言:javascript
复制
ES_URL=https://es01:9200
ES_API_KEY=your_generated_api_key

🧠 第二步:注入灵魂 —— 配置 Jina Embeddings v5

普通的搜索只能匹配关键词,而我们要的是语义搜索。这就轮到 Jina v5 出场了。

在 Elasticsearch 中,我们通过 inference API 来注册 Jina 模型。最酷的是,Elasticsearch 的 semantic_text 字段类型可以自动处理这一切。

1. 注册 Inference Endpoint(Elastic Cloud EIS + Elastic Connect)

Elastic Connect 打通本地与 Elastic Cloud,EIS 无需本地部署模型,直接接入 Jina。 核心步骤:

  1. 1. 在 kibana 上登录 Elastic Connect
  1. 2. 在跳转的页面上获取对应的 API Key
  1. 3. 连接 Elastic Connect
  1. 4. 启动 EIS
  1. 5. 这样我们就可以直接使用 EIS 上的各种推理服务,包括最新的 Jina Embedding 模型:
代码语言:javascript
复制
PUT multilingual-semantic-index
{
  "mappings": {
    "properties": {
      "content": {
        "type": "semantic_text",
        "inference_id": ".jina-embeddings-v5-text-small"
      }
    }
  }
}

# Ingest data about France
POST multilingual-semantic-index/_doc
{
  "content": "The capital of France is Paris"
}

GET multilingual-semantic-index/_search
{
  "query": {
    "semantic": {
      "field": "content",
      "query": "法国的首都是哪里?"
    }
  }
}

2. 自动映射

在我们的 Crawler 代码中,我们已经贴心地为你配置好了映射。每当爬虫创建一个新索引(比如 openclaw-docs),它会自动应用如下 mapping:

代码语言:javascript
复制
        "body": {
          "type": "text",
          "fields": {
            "keyword": {
              "type": "keyword",
              "ignore_above": 256
            },
            "semantic_elser": {
              "type": "semantic_text",
              "inference_id": ".elser-2-elastic",
              "model_settings": {
                "service": "elastic",
                "task_type": "sparse_embedding"
              }
            },
            "semantic_multilingual": {
              "type": "semantic_text",
              "inference_id": ".jina-embeddings-v5-text-small",
              "model_settings": {
                "service": "elastic",
                "task_type": "text_embedding",
                "dimensions": 1024,
                "similarity": "cosine",
                "element_type": "float"
              }
            }
          }
        },

这意味着,爬下来的每一段 HTML body,都会自动变成一个高维向量,随时准备被检索。 但最重要的是,你不用担心关于搜索的任何问题,因为在整个过程中,你不需要具备任何 elasticsearch 的知识,agent 已经在后台为你搞定一切!


🕷️ 第三步:开始狩猎 —— 爬取 OpenClaw 文档

打开浏览器,访问 http://localhost:16700。你会看到一个简洁的控制台。

1. 提交爬取任务

点击 "New Crawl",填入以下信息:

  • Domains: https://docs.openclaw.ai
  • Output Index: openclaw-docs
  • Crawl Rules: 允许 /zh-CN.*(如果你想看中文文档的话,虽然 OpenClaw 文档目前主要是英文,但 Jina v5 的多语言能力让你搜中文也能搜到英文文档!)

点击 Run

2. 监控进度

在 Dashboard 上,你可以实时看到:

  • Pages Visited: 爬了多少页。
  • Documents Indexed: 存了多少文档。

稍等片刻,当状态变为 Completed 时,我们的数据金矿就准备好了。


💬 第四步:见证奇迹 —— 与 OpenClaw 对话

现在,最激动人心的时刻到了!我们不再需要 grep 或者 Ctrl+F,我们可以直接数据。

打开 Kibana -> Agent

无需进行任何配置,即可开始对话!

3. 开始提问

试着在 Chat 窗口中问它:

User: "OpenClaw 是什么?它支持哪些聊天软件?"

这时,Agent 就像一位经验丰富的图书管理员,迅速理解了你的意图,并自动将问题“路由”到了正确的知识库。

你甚至可以看到它思考的过程:

🤔 思考中...

  • 识别意图:用户想了解 OpenClaw 的定义及支持的聊天软件。
  • 锁定目标:最相关的数据源是 openclaw-docs
  • 执行搜索:正在索引中检索 "OpenClaw是什么?它支持哪些聊天软件?"...
  • 获取结果:成功找到相关文档!

紧接着,它会根据检索到的内容,给出一个精准的回答:

OpenClaw 是一个个人 AI 助手,运行在用户自己的设备上。它可以在用户已经使用的消息平台上进行回复,包括 WhatsApp、Telegram、Slack、Discord、Google Chat、Signal、iMessage、WebChat 等。OpenClaw 的设计理念是本地优先,用户可以在自己的硬件上运行这个助手,并保持会话历史和数据的本地存储。..."

你可以看到,它的回答是基于我们爬取到的 openclaw 的官方文档:

再问个技术点的:

User: "how to config Lark integrations?"

看!它不仅理解了你的英文问题,还根据对上下文的理解,在自动路由到了 openclaw-docs 索引。这就是 Jina Embeddings v5 多语言能力的完美展示。


🎉 总结

通过 Elastic Open CrawlerJina Embeddings v5 的强强联手,我们只用了几分钟,就构建了一个私有的、多语言的、懂语义的 OpenClaw 知识库。

  • Crawly 让爬虫变得简单可视化。
  • Elasticsearch 提供了坚实的数据底座。
  • Jina v5 让搜索变得“聪明”且“国际化”。

现在,你不仅了解了 OpenClaw,还掌握了一套通用的知识库搭建方案。快去试试爬取你感兴趣的其他文档吧!

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2026-02-26,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 点火三周 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 🏗️ 架构概览:三剑客的完美配合
  • 🛠️ 第一步:环境准备
    • 1. 启动服务
    • 2. 配置 Elasticsearch 连接
  • 🧠 第二步:注入灵魂 —— 配置 Jina Embeddings v5
    • 1. 注册 Inference Endpoint(Elastic Cloud EIS + Elastic Connect)
    • 2. 自动映射
  • 🕷️ 第三步:开始狩猎 —— 爬取 OpenClaw 文档
    • 1. 提交爬取任务
    • 2. 监控进度
  • 💬 第四步:见证奇迹 —— 与 OpenClaw 对话
    • 3. 开始提问
  • 🎉 总结
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档