【问题标题】:what do i do to get real time update from mysql to elasticsearch我该怎么做才能从mysql实时更新到elasticsearch
【发布时间】:2015-12-08 16:39:21
【问题描述】:

我创建了一个基于:https://github.com/jprante/elasticsearch-jdbc/wiki/jdbc-plugin-feeder-mode-as-an-alternative-to-the-deprecated-elasticsearch-river-api 的 feeder 脚本

我没有在上面的示例中添加任何新属性(当然更改了数据库设置等)。该表很快被索引,然后馈线脚本优雅地终止。当新记录添加到数据库时,我需要做什么才能使馈线脚本持久化并(近)实时从 mysql 数据库获取更新?

谢谢

更新:

弹性搜索版本是 1.4.4,安装了插件 river 和 head。

【问题讨论】:

    标签: mysql elasticsearch elasticsearch-plugin


    【解决方案1】:

    您有多种选择来获得近乎实时的行为,但要付出一定的代价。

    1. 显式触发索引刷新

    可以在所有数据写入后完成。

    https://www.elastic.co/guide/en/elasticsearch/reference/current/indices-refresh.html

    1. 配置索引刷新时间

    您可以将索引刷新绑定设置为较短的时间跨度。

    {
      "settings": {
        "refresh_interval": "1s" 
      }
    }
    

    更多信息请见:https://www.elastic.co/guide/en/elasticsearch/guide/current/near-real-time.html

    【讨论】:

    • 我不认为这是 OP 正在寻找的答案,OP 想要实时 sync mysql 和 ES,refresh interval 是文档被索引之间的时间段,然后是那些文档实际上变得可搜索,默认为1s
    【解决方案2】:

    感谢大家的关注。

    我最终决定在 DB 和 ES 中创建文档。在新文档中获得任何值之前(在索引中创建文档之后),我正在刷新索引。我知道这不是一个“理想”的情况,但现在解决了我的问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-07-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-01-22
      相关资源
      最近更新 更多