【问题标题】:Automatically syncing ElasticSearch with SQL自动将 ElasticSearch 与 SQL 同步
【发布时间】:2014-06-21 12:07:04
【问题描述】:

我已经运行了这个查询,它运行良好。

curl -XPUT 'localhost:9200/_river/my_jdbc_river/_meta' -d '{
    "type" : "jdbc",
    "jdbc" : {
        "url" : "jdbc:mysql://localhost:3306/test",
        "user" : "myaccount",
        "password" : "myaccount",
        "sql" : "select * from orders"
    }
}'

一切似乎都已编入索引。但是,当我更改订单表中的数据时,更改并未反映 ElasticSearch 中的文档。是否可以自动同步更新/更改的数据?

【问题讨论】:

    标签: java mysql jdbc elasticsearch elasticsearch-jdbc-river


    【解决方案1】:

    你需要为schedule添加另一个参数来告诉jdbc-river定期拉取数据。

    Here 是对此的引用。

    【讨论】:

    • 让我担心的是投票无法扩展我正在寻找触发器或更好的东西
    • 在您的情况下,您是轮询可扩展性的最佳判断者:) 恐怕 afaik elasticsearch 本身没有订阅事件的能力。但是,es 客户端(例如 ruby​​ 的轮胎)有助于将钩子附加到您的 orm,当保存到 rdbms 时,它将 delta 更新推送到 es。
    【解决方案2】:

    我在 Windows 7 上使用弹性搜索。我在加载 river-jdbc 以将弹性搜索与 mysql 同步时遇到问题。我尝试加载所有 river-jdbc 河流,但结果是:

    执行错误

    [java.lang.NoClassDefFoundError:org/elasticsearch/rest/XcontentThrowableRestResponse], NoClassDefFoundError[org/elasticsearch/rest/XcontentThrowableRestResponse], ClassNotFoundExeption[org/elasticsearch/rest/XcontentThrowableRestResponse]
    

    P/s:操作系统:Window 7,elasticsearch 1.2.1,mysql-connector-java-5.1.25-bin.jar

    【讨论】:

      猜你喜欢
      • 2019-07-01
      • 2018-03-03
      • 2020-03-27
      • 2013-09-09
      • 2018-06-10
      • 1970-01-01
      • 1970-01-01
      • 2014-04-16
      • 2017-06-01
      相关资源
      最近更新 更多