【问题标题】:ElasticSearch and existing MySQL databaseElasticSearch 和现有的 MySQL 数据库
【发布时间】:2015-05-13 11:36:33
【问题描述】:

我有带有数据的 MySQL 数据库。数据库中存在多对多关系 - 父表、子表和引用表。
我想添加全文搜索功能。我想知道弹性搜索是否可以帮助我。我找到了jdbc 插件。据我了解,我必须使用以下代码索引我现有的数据:

curl -XPUT 'localhost:9200/_river/my_jdbc_river/_meta' -d '{
    "type" : "jdbc",
    "jdbc" : {
        "url" : "jdbc:mysql://localhost:3306/test",
        "user" : "",
        "password" : "",
        "sql" : "any complex sql query, it can be select from 3 tables"
    }
}'

所以我有以下问题:

  1. 我拥有什么样的数据库方案并不重要。我只有 为获取的数据提供一个sql查询和elasticsearch索引。 这样对吗?
  2. 添加新数据时我需要做什么?我应该 在两个地方添加新记录?在sql数据库和elastichsearch 指数?这是正确的吗?谢谢。

【问题讨论】:

    标签: mysql sql database jdbc elasticsearch


    【解决方案1】:

    摘自文档river documentation

    1. 方案无所谓,查询的结果会被转换成有效的Elasticsearch JSON:

    将生成以下 JSON 文档:

    id=<random> {"product":"Apples","created":null,"department":"American Fruits","quantity":1,"customer":"Big"}
    id=<random> {"product":"Bananas","created":null,"department":"German Fruits","quantity":1,"customer":"Large"}
    id=<random> {"product":"Oranges","created":null,"department":"German Fruits","quantity":2,"customer":"Huge"}
    id=<random> {"product":"Apples","created":1338501600000,"department":"German Fruits","quantity":2,"customer":"Good"}
    id=<random> {"product":"Oranges","created":1338501600000,"department":"English Fruits","quantity":3,"c
    
    1. 建议使用 UTC 时间戳进行同步。此示例使用毫秒分辨率列 mytimestamp 获取自上次河流运行以来添加的所有产品行:

      {
          "type" : "jdbc",
          "jdbc" : {
              "url" : "jdbc:mysql://localhost:3306/test",
              "user" : "",
              "password" : "",
              "sql" : [
                  {
                      "statement" : "select * from \"products\" where \"mytimestamp\" > ?",
                      "parameter" : [ "$river.state.last_active_begin" ]
                  }
              ],
              "index" : "my_jdbc_river_index",
              "type" : "my_jdbc_river_type"
          }
      }
      

    【讨论】:

      猜你喜欢
      • 2017-11-24
      • 2017-04-29
      • 2015-07-20
      • 1970-01-01
      • 2013-06-23
      • 2012-01-26
      • 1970-01-01
      • 1970-01-01
      • 2012-04-11
      相关资源
      最近更新 更多