如何在预先存在的SQL数据库之上使用Elastic Search?

Mil*_* M. 38 javascript php sql json elasticsearch

我一直在阅读很多关于如何在javascript或PHP网站上实现Elastic Search的好文档.

ES非常好的介绍.

这里这里都有完整的文档.

整个CRUD.

使用PHP进行弹性搜索:此处,此处此处.

因此,我给你这些URL的原因是为了了解如何在拥有预先存在的SQL DB时使用其中一个或多个优秀的文档.

我在某处错过了一点:正如他们说Elasticsearch将使用MongoDB创建自己的索引和数据库,我不明白如何使用SQL来使用我的(巨大的)数据库?假设我有一个MySQL数据库,我想使用Elasticsearch使我的研究更快,并提出用户预先制作的查询,我该怎么做?ES如何在MySQL上工作?如何将这个巨大的数据集(超过8GB)传输到ES DB中,以便在开始时充分发挥作用?

非常感谢

Tim*_*Tim 21

我正在使用jdbc-river w/mysql.它非常快.您可以将它们配置为持续轮询数据,或使用一次性(一次性策略)导入.

例如

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
    }
}'
Run Code Online (Sandbox Code Playgroud)