在之前的文章中,我们介绍过如何使用《 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》。
elasticsearch.api_compatibility: trueelasticsearch.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
数据迁移完后,测试能否搜索到文档。
评论