2016-12-28 121 views
0

我想从mysql数据库获取结果集,然后转换为json,然后使用弹性搜索API进行索引。使用弹性搜索索引mysql记录

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

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

任何示例代码/链接将非常有帮助。

回答

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。希望能帮助到你!

+0

我愿意使用logstash,但不知道如何使用上面的conf文件与我的java代码集成... – Anand

+0

终于使用ans从http://stackoverflow.com/questions/35504385/run-logstash-in -java程序 – Anand