当前位置: 首页 > 面试题库 >

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

司寇苗宣
2023-03-14
问题内容

我已经阅读了很多有关如何使用javascript或PHP在网站上实现Elastic Search的很好的文档。

ES很好的介绍。

这里和这里的文档都很完整。

整个CRUD。

使用PHP进行elasticsearch:此处,此处和此处。

因此,我为您提供这些URL的原因是要了解在拥有预先存在的SQL DB时如何使用一个或多个出色的文档。

我在某处缺少要点:正如他们所说的,Elasticsearch将使用MongoDB创建自己的索引和数据库,我不知道如何使用SQL使用我的(大型)数据库?假设我有一个MySQL数据库,并且想使用Elasticsearch加快研究速度并提出用户预制查询,我该怎么做?ES如何在MySQL之上/沿MySQL工作?如何将这组巨大的数据集(超过8GB)传输到ES
DB中,以便在一开始就完全有效?

非常感谢


问题答案:

我正在使用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
    }
}'


 类似资料:
  • 问题内容: 我想知道是否有一种优雅的方法来检查数据库的存在?简而言之,如何测试数据库连接字符串的连接? 谢谢 问题答案: 设置在连接字符串中,并执行: 与设置为数据库的名称。 如果要整体检查连接字符串(而不是独立数据库的存在),请尝试以块形式连接到它。

  • 问题内容: 如何在SQL数据库中存储HashMap?另外,您如何将HashMap从SQL数据库加载回HashMap实例? 好的,这就是我正在做的。我有一个数据库来存储我的游戏的玩家数据。它有一个包含用户名和密码的表。每个玩家都有一个存储其属性的HashMap。我需要将该HashMap及其各自的用户存储在数据库中。 问题答案: 您需要一个三列表 用户, 键, 值 然后看起来像 “用户1”,“属性1”

  • 问题内容: 我已经在互联网上搜索了几天,但找不到仅使用ODBC和SQL来解决此问题的通用方法。 有没有办法查看数据库是否已经存在,只能使用 ODBC 。它必须是标准SQL,因为用户可以选择自己选择的DSN(意味着他自己的SQL Server)。 这意味着我无法检查服务器上的主表,因为在不同的SQL服务器上它们的名称不同。 谢谢。 问题答案: 不知道这是否为时已晚,或者对于您来说足够“便携”。 我只

  • 我想使用JavaFx、Spring Boot和Spring Data JPA制作一个桌面应用程序,并将H2作为我的数据库。问题是我试图运行JUnit以将数据保存在本地目录中,但每次运行JUnit时数据都会丢失。 我的文件; 我的测试用例; 打印列表的大小是1,但当我再次像这样运行测试用例时 它打印的列表大小为0

  • 问题内容: 我需要获取SQL Server中的所有表名。为此,我使用以下代码: 我需要使用动态数据库名称。为此,我尝试使用以下代码: 但这是行不通的。我怎样才能做到这一点 ? 问题答案: 或简单地:

  • 问题内容: 我有一个从中启动容器的MySQL映像。每次创建容器时,我都会设置dbs,导入sql-dump文件并创建用户。 在容器上工作时,我会创建存储在MySQL中的各种数据。 我想将这些额外的数据保存在数据卷容器[DVC]中,这样我就可以将DVC交给同事,然后从停下来的地方继续。 事实是,他还将启动MySQL容器,并且将从头开始重复初始过程。 如我所读,如果我从DVC 装载[ ]卷[ 和],则将