ruby-on-rails – 保持elasticsearch和数据库同步

ruby-on-rails – 保持elasticsearch和数据库同步,第1张

概述我试图找到一种方法来保持我的 mysql数据库和elasticsearch数据库同步.我使用 jprante / elasticsearch-river-jdbc插件为elasticsearch设置了一个jdbc河.当我执行以下请求时: curl -XPUT 'localhost:9200/_river/my_jdbc_river/_meta' -d '{"type" : "jdbc","jd 我试图找到一种方法来保持我的 mysql数据库和elasticsearch数据库同步.我使用 jprante / elasticsearch-river-jdbc插件为elasticsearch设置了一个jdbc河.当我执行以下请求时:

curl -xpuT 'localhost:9200/_river/my_jdbc_river/_Meta' -d '{"type" : "jdbc","jdbc" : {    "driver" : "com.MysqL.jdbc.Driver","url" : "jdbc:MysqL://localhost:3306/MY-DATABASE","user" : "root","password" : "password","sql" : "select * from users","poll" : "1m"},"index" : {    "index" : "test_index","type" : "user"}}'

河流开始索引数据,但对于某些记录,我得到了org.elasticsearch.index.mapper.MapperParsingException.那么有关于这个问题here的讨论,但我想知道解决这个问题的方法.

是否可以通过为我要编制索引的“类型”的所有“字段”创建explicit mapping来永久修复此问题,还是有更好的方法来解决此问题?

我的另一个问题是,当jdbc-river再次轮询数据库时,它似乎将整个数据集(在SQL查询中给出)重新索引到ES中.我不确定,但是这样做是因为elasticsearch想要添加新数据以及更新现有数据中的任何更改吗?如果表的数据是静态的,是否可以仅索引新数据?

解决方法 你看过默认映射了吗?
http://www.elasticsearch.org/guide/reference/mapping/dynamic-mapping.html

我认为它可以帮助你.

如果数据表中有插入日期字段,则可以使用它来过滤必须编制索引的内容.
见https://github.com/jprante/elasticsearch-river-jdbc#time-based-selecting

HTH

大卫

@H_502_37@ 总结

以上是内存溢出为你收集整理的ruby-on-rails – 保持elasticsearch和数据库同步全部内容,希望文章能够帮你解决ruby-on-rails – 保持elasticsearch和数据库同步所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1293923.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-10
下一篇 2022-06-10

发表评论

登录后才能评论

评论列表(0条)

保存