私有知识库 Coco AI 实战(二):摄入 MongoDB 数据
在之前的文章中,我们介绍过如何使用《 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 => falsessl_verification_mode => noneuser => "admin"password => "coco-server"}
}
Coco search
测试能否搜索到文档。