白小丸 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这样的形式

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

报告相同问题?

悬赏问题

  • ¥15 求学软件的前人们指明方向🥺
  • ¥50 如何增强飞上天的树莓派的热点信号强度,以使得笔记本可以在地面实现远程桌面连接
  • ¥15 MCNP里如何定义多个源?
  • ¥20 双层网络上信息-疾病传播
  • ¥50 paddlepaddle pinn
  • ¥20 idea运行测试代码报错问题
  • ¥15 网络监控:网络故障告警通知
  • ¥15 django项目运行报编码错误
  • ¥15 STM32驱动继电器
  • ¥15 Windows server update services