在之前的文章中,我们介绍过如何使用《 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
Easysearch
由于是使用 Logstash 连接 Easysearch,要开启兼容模式,编辑 easysearch.yml,详情请查阅《如何使用 Logstash 8 连接 Easysearch》。
elasticsearch.api_compatibility: true
elasticsearch.api_compatibility_version: "8.9.0"
Logstash
我们在上次 Logstash 迁移 MongoDB 数据的配置上稍作修改,增加文档 source 信息,写入 coco_document 索引。
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
测试能否搜索到文档。

