使用弹性搜索索引mysql记录

时间:2016-12-28 11:18:45

标签: java elasticsearch logstash

我正在尝试从mysql db获取结果集,然后转换为json,然后使用弹性搜索API进行索引。

谷歌发现使用logstash我可以直接将数据索引到弹性搜索,搜索了很多但是dint通过java代码找到任何示例代码如何做到这一点。

我不确定哪种方法最好(使用logstash索引或将结果集转换为json,然后通过elasticsearch进行索引)。

任何示例代码/链接都非常有用。

1 个答案:

答案 0 :(得分:2)

如果您愿意使用logstash进行此操作,则可能必须使用jdbc输入插件,您可以在其中从MySQL数据库中提取数据并将其编入索引你的elasticsearch个实例。

input {
    jdbc {
        jdbc_connection_string => "jdbc:mysql://yourhost:3306/yourdb" 
        jdbc_user => "root"
        jdbc_password => "root"
        jdbc_validate_connection => true
        jdbc_driver_library => "/pathtojar/mysql-connector-java-5.1.39-bin.jar"
        jdbc_driver_class => "com.mysql.jdbc.Driver"
        schedule => "* * * * *" <-- if you need the query to be running continuously at a time span 
        statement => "SELECT * FROM yourtable" <-- change the query to your need        
        jdbc_paging_enabled => "true"
        jdbc_page_size => "50000"
    }
}

以上只是一个示例,因此您可以根据需要重现它。我不确定哪种方式更好,是将它转换为json还是使用logstash明确索引它。您可能想要查看此thread。希望能帮助到你!