如何在预先存在的SQL数据库上使用弹性search?

我一直在阅读大量有关如何在JavaScript或PHP网站上实现弹性search的文档。

很好的ES介绍 。

非常完整的文档在这里和这里 。

整个CRUD 。

用PHP弹性search: 在这里 , 在这里 , 在这里 。

所以我给你这些URL的原因是要理解如何在使用预先存在的SQL DB时使用其中的一个或多个文档。

我在某处丢失了一点:正如他们所说的,Elasticsearch将使用MongoDB创build自己的索引和数据库,我不明白如何使用我的(巨大的)使用SQL的数据库? 假设我有一个MySQL数据库,我想用Elasticsearch使我的研究更快,并提出用户预先提出的查询,我该怎么做? ES如何在MySQL上工作? 如何将这个巨大的数据集(超过8GB)转换成ES数据库,以便在开始时实现高效率?

非常感谢

我正在使用jdbc-river w / mysql。 这是非常快的。 您可以configuration它们连续轮询数据,或使用一次性(单次策略)导入。

例如

curl -xPUT http://es-server:9200/_river/my_river/_meta -d ' { "type" : "jdbc", "jdbc" : { "strategy" : "simple", "poll" : "5s", "scale" : 0, "autocommit" : false, "fetchsize" : 10, "max_rows" : 0, "max_retries" : 3, "max_retries_wait" : "10s", "driver" : "com.mysql.jdbc.Driver", "url" : "jdbc:mysql://mysql-server:3306/mydb", "user" : "root", "password" : "password*", "sql" : "select c.id, c.brandCode, c.companyCode from category c" }, "index" : { "index" : "mainIndex", "type" : "category", "bulk_size" : 30, "max_bulk_requests" : 100, "index_settings" : null, "type_mapping" : null, "versioning" : false, "acknowledge" : false } }' 

如果您需要jdbc-river提供的轮询更高性能和可伸缩的解决scheme,我build议您观看此演示文稿,以说明如何执行从SQL Server到Elastic Search的增量式同步:

video中讨论的原则也适用于其他RDBMS – > NoSQL复制应用程序。

  • 将Elasticsearch添加到现有的.NET / SQL Server应用程序 (You Tube)