我该怎么做才能从mysql实时更新到elasticsearch

时间:2015-12-08 16:39:22

标签: mysql elasticsearch elasticsearch-plugin

我已根据以下内容创建了一个支线脚本:https://github.com/jprante/elasticsearch-jdbc/wiki/jdbc-plugin-feeder-mode-as-an-alternative-to-the-deprecated-elasticsearch-river-api

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

谢谢

更新

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

2 个答案:

答案 0 :(得分:0)

您可以通过多种方式获得近乎实时的行为,但需要付出一些代价。

  1. 明确触发索引刷新
  2. 可以在写完所有数据后完成。

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

    1. 配置索引刷新时间
    2. 您可以将索引刷新关系设置为较短的时间范围。

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

      有关详细信息,请参阅:https://www.elastic.co/guide/en/elasticsearch/guide/current/near-real-time.html

答案 1 :(得分:0)

感谢所有人的兴趣。

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