白小丸 2019-03-20 11:37 采纳率: 100%
浏览 1333
已采纳

用mongo-connector同步mongodb和elasticsearch遇到的几个问题

我希望把mongodb中存储的数据同步到elasticsearch,以便后续实现检索功能。系统是windows10,各种工具和环境都搭建好了,mongodb的副本集也已建立,elasticsearch版本是6.X,同步工具选择的是mongo-connector,同步命令如下:

mongo-connector --auto-commit-interval=0 -m localhost:27017 -t localhost:9200 -d elastic2_doc_manager -o mongodb_oplog_position.oplog

但是在数据同步过程中遇到了几个问题:
1.
failed to parse field [xx] of type [long]
出错的数据是一个32位的MD5值,在mongodb中的数据类型是String,是因为长度太长了所以出这个错误吗,该怎么解决呢?

2.
Rejecting mapping update to [db] as the final mapping would have more than 1 type: [t1, t2]
提示一个index中不能有多个type,查了一下,发现是elasticsearch 6.X版本以后的新规范,但是mongodb通常会一个DB中有多个Collection,这个该怎么同步呢?

请各位大佬帮忙解答一下。

  • 写回答

1条回答 默认 最新

  • 哈喽大海豚 2019-03-20 12:19
    关注

    1.第一个问题
    32位MD5的值,每一个都是16进制数,而java中long是十进制的数,所以只要你的字符串中带有十六进制的字母abcdef,就会报错,推荐你在传输之前,解密一下,再存储,或者指定es字段类型为string
    2.第二个问题
    ES中某个资源的定位是这样的形式的
    host:port/index/type/id
    ES6之后,只能有一个type,以后可能移除这个,所以现在如果是多个type的话,可以把index和type名拼接。
    host:port/index_type/xxx/id这样的形式

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 信号傅里叶变换在matlab上遇到的小问题请求帮助
  • ¥15 保护模式-系统加载-段寄存器
  • ¥15 电脑桌面设定一个区域禁止鼠标操作
  • ¥15 求NPF226060磁芯的详细资料