--- title: "Coco AI 实战(二):摄入 MongoDB 数据" date: 2025-06-17 lastmod: 2025-06-17 description: "本文实战演示了将数据摄入Coco Server,并搜索MongoDB数据的过程。" tags: ["Coco AI"] summary: "在之前的文章中,我们介绍过如何使用 《 Logstash 迁移 MongoDB 数据到 Easyseach》,既然 Coco AI 后台数据存储也使用 Easysearch,我们能否直接把 MongoDB 的数据迁移到 Coco AI 的 Easysearch,使用 Coco AI 对数据进行检索呢?You got it ! Connector # Coco AI 的 Connector 支持通过两种方式创建:API 接口或管理平台。相信已经完成 《私有知识库 Coco AI 实战(一)》的小伙伴已经有 Coco AI 的管理平台了,下面我们将通过管理平台创建 Connector,如需要通过 API 方式创建,请参考 文档。 登录管理平台,设置 -> Connector -> 新增 Datasource # 数据源 -> 新增 -> MongoDB 记录上面的 Datasource ID: d037kjj75bvg264k5pe0, logstash 配置中要用。 Easysearch # 由于是使用 Logstash 连接 Easysearch,要开启兼容模式,编辑 easysearch.yml,详情请查阅 《如何使用 Logstash 8 连接 Easysearch》。" --- 在之前的文章中,我们介绍过如何使用[《 Logstash 迁移 MongoDB 数据到 Easyseach》](https://infinilabs.cn/blog/2025/migrating-data-from-mongodb-to-easysearch-using-logstash/),既然 Coco AI 后台数据存储也使用 Easysearch,我们能否直接把 MongoDB 的数据迁移到 Coco AI 的 Easysearch,使用 Coco AI 对数据进行检索呢?**You got it !** ## Connector Coco AI 的 Connector 支持通过两种方式创建:API 接口或管理平台。相信已经完成[《私有知识库 Coco AI 实战(一)》](https://infinilabs.cn/blog/2025/coco-ai-hands-on-1/)的小伙伴已经有 Coco AI 的管理平台了,下面我们将通过管理平台创建 Connector,如需要通过 API 方式创建,请参考[文档](https://docs.infinilabs.com/coco-server/main/docs/tutorials/howto_create_your_own_datasource/)。 登录管理平台,设置 -> Connector -> 新增 {{% load-img "/img/blog/2025/coco-ai-hands-on-2/1.png" "" %}} {{% load-img "/img/blog/2025/coco-ai-hands-on-2/2.png" "" %}} ## Datasource 数据源 -> 新增 -> MongoDB {{% load-img "/img/blog/2025/coco-ai-hands-on-2/3.png" "" %}} {{% load-img "/img/blog/2025/coco-ai-hands-on-2/4.png" "" %}} {{% load-img "/img/blog/2025/coco-ai-hands-on-2/5.png" "" %}} 记录上面的 Datasource ID: **d037kjj75bvg264k5pe0**, logstash 配置中要用。 ## Easysearch 由于是使用 Logstash 连接 Easysearch,要开启兼容模式,编辑 easysearch.yml,详情请查阅[《如何使用 Logstash 8 连接 Easysearch》](https://infinilabs.cn/blog/2025/logstash-8-connect-easysearch/)。 ```plain elasticsearch.api_compatibility: true elasticsearch.api_compatibility_version: "8.9.0" ``` ## Logstash 我们在上次 Logstash 迁移 MongoDB 数据的配置上稍作修改,增加文档 source 信息,写入 coco_document 索引。 ```plain input { jdbc{ jdbc_driver_class => "Java::com.wisecoders.dbschema.mongodb.JdbcDriver" jdbc_driver_library => "/usr/share/logstash/driver/mongojdbc4.8.3.jar" jdbc_user => "user" jdbc_password => "pwd" jdbc_connection_string => "jdbc:mongodb://localhost:27017/test" statement => "db.collection_test.find({},{'_id': false})" } } filter { mutate { rename => { "[document][tags]" => "tags" "[document][summary]" => "summary" "[document][username]" => "owner.username" "[document][content]" => "content" "[document][category]" => "category" "[document][created]" => "created" "[document][url]" => "url" "[document][id]" => "id" "[document][title]" => "title" } remove_field => [ "document","@timestamp","@version" ] add_field => { "[source][type]" => "connector" "[source][name]" => "MongoDB Datasource" "[source][id]" => "d037kjj75bvg264k5pe0" } } } output { #stdout { } elasticsearch { hosts => ["https://127.0.0.1:9200"] index => "coco_document" manage_template => false ssl_verification_mode => none user => "admin" password => "coco-server" } } ``` ## Coco search 数据迁移完后,测试能否搜索到文档。 {{% load-img "/img/blog/2025/coco-ai-hands-on-2/6.png" "" %}} {{% load-img "/img/blog/2025/coco-ai-hands-on-2/7.png" "" %}} 如有问题,欢迎加我微信沟通。 {{% load-img "/img/blog/banner/about_yangf.png" "" %}}