网站建设的实训周,wordpress 文章 nofollow,建设银行网站扫码支付在哪里,嘉兴网站建设书生商友Elasticsearch提供强大的搜索功能#xff0c;并支持数据的分片和复制。 因此#xff0c;我们希望将数据库中可用的数据索引到Elasticsearch中。 有多种方法可以将数据索引到Elasticsearch中#xff1a; 使用Logstash将源设置为DB#xff0c;将接收器设置为Elasticsearch并支持数据的分片和复制。 因此我们希望将数据库中可用的数据索引到Elasticsearch中。 有多种方法可以将数据索引到Elasticsearch中 使用Logstash将源设置为DB将接收器设置为Elasticsearch并在需要时使用过滤器来构建JSON对象。 使用外部库elasticsearch-jdbc 该库在自己的进程中在Elasticsearch实例外部运行。 它利用传输客户端及其批量API将数据索引到Elasticsearch中。 在本文中我们将研究方法2即使用作为独立进程运行的外部库。 我们将使用MySQL作为数据库并使用MySQL随附的示例数据库世界其中包含以下表格 国家 市 国家语言 Elasticsearch-jdbc库通过其GitHub 页面上提供的兼容性矩阵最多支持Elasticsearch 2.3.4。 首先让我们为数据建立索引而无需预先定义ElasticsearchES中的索引结构。 如果我们不提供索引结构则ES会根据索引数据推断并构建一个。 但这永远不是理想的结构。 创建一个空索引 确保ES正在运行。 如果您在Windows上请导航到ES的bin目录并运行elasticsearch.bat。 如果您使用的是Linux请按照此处的说明进行操作。 要创建一个空索引您必须向es_urlport / index_name发出HTTP POST。 例如使用cURL curl -X POST localhost:9200/world 您甚至可以使用自己选择的REST客户端例如Postman来调用ES REST API 设置JDBC导入器 从此处下载elasticsearch-jdbc二进制文件并将其解压缩到一个文件夹中我们将其称为ES_IMPORTER。 ES_IMPORTER / bin中已经存在用于与MySQL和其他数据库一起使用的脚本我们会将所有与导入相关的脚本放在同一文件夹中。 注意 如果使用的是Oracle DB则需要将JDBC驱动程序放在ES_IMPORTER / lib文件夹中。 对于MySQL等其他DBPostgreSql JDBC驱动程序已经可用。 另一个注意事项 elasticsearch-jdbc需要JDK 8 我们将创建以下文件链接中可用的代码来运行导入程序 world-importer.bat / world-importer.sh –用于启动导入程序 world-importer-config.json –用于配置导入器 world.sql –包含要执行以获取索引数据的SQL查询。 JDBC连接字符串数据库用户名和密码可以在world-importer-config.json中进行更新。 此外可以在同一文件中更新ES端口ES主机名ES索引名称ES索引类型名称。 运行JDBC导入器 在运行导入程序之前打开URL http// localhost9200 / world 上面显示索引世界没有定义的结构 打开URL http// localhost9200 / world / _search 上面显示索引世界中没有数据。 导航至目录ES_IMPORTER / bin并运行world-importer.bat或world-importer.sh 。 导入程序完成后应该立即完成打开URL http// localhost9200 / world / 。 现在您将看到索引具有在映射键中定义的结构也称为映射。 并且当您打开URL http// localhost9200 / world / _search时您将找到索引数据该数据大约是hits字段报告的239个条目。 JDBC导入器的优点 易于导入数据提供了许多配置选项。 并且可以安排重复运行。 支持创建嵌套对象和嵌套对象数组在我们的示例中大写字母是嵌套对象而城市和语言是嵌套对象数组 可以对SQL查询进行参数化 只有上次运行后更改的数据才能重新索引。 JDBC导入器的缺点 不支持ES版本5及更高版本 嵌套对象数组中可能存在重复的对象。 但是重复数据删除可以在应用程序层进行处理。 对最新ES版本的支持可能会延迟。 在本文的下一部分中我们将 创建索引的映射 了解用于索引的SQL 翻译自: https://www.javacodegeeks.com/2017/03/index-data-relational-database-elasticsearch-1.html