当前位置: 首页 > news >正文

使用Elasticsearch-jdbc为MySQL数据库建立索引

elasticsearch-jdbc

环境

  • Ubuntu 14.04
  • JDK 1.8.0_66
  • Elasticsearch 2.3.1
  • Elasticsearch-jdbc 2.3.1.0
  • Elasticsearch单节点环境

进入es目录~/cluster/elasticsearch-2.3.1

下载elasticsearch-jdbc包,并解压

$ wget http://xbib.org/repository/org/xbib/elasticsearch/importer/elasticsearch-jdbc/2.3.1.0/elasticsearch-jdbc-2.3.1.0-dist.zip $ unzip elasticsearch-jdbc-2.3.1.0-dist.zip

数据库中的数据

数据位于10.110.1.47:3306下的ispider_data数据库,表名为es_test
共三条数据如下:

id   name
4   zhangsan
2   lisi
3   wangwu

编辑数据导入脚本import.sh

vi import.sh
输入:

bin=/home/es/cluster/elasticsearch-2.3.1/elasticsearch-jdbc-2.3.1.0/bin
lib=/home/es/cluster/elasticsearch-2.3.1/elasticsearch-jdbc-2.3.1.0/lib
echo '{
"type" : "jdbc",
"jdbc": {
"url":"jdbc:mysql://10.110.1.47:3306/ispider_data", "user":"root", "password":"123456a?", "sql":"select * from es_test", "index" : "customer", "type" : "external" }}' | java \ -cp "${lib}/*" \ -Dlog4j.configurationFile=${bin}/log4j2.xml \ org.xbib.tools.Runner \ org.xbib.tools.JDBCImporter

上述,将MySQL中的数据建立为es中索引为customer,类型为external中。

查询索引

es@search1:~/cluster/elasticsearch-2.3.1$ curl 'localhost:9200/customer/external/_search?pretty&q=*'

结果显示:

{
  "took" : 6,
  "timed_out" : false,
  "_shards" : { "total" : 5, "successful" : 5, "failed" : 0 }, "hits" : { "total" : 3, "max_score" : 1.0, "hits" : [ { "_index" : "customer", "_type" : "external", "_id" : "AVQ8--xAkvh0m5n1OUEo", "_score" : 1.0, "_source" : { "id" : "4", "name" : "zhangsan" } }, { "_index" : "customer", "_type" : "external", "_id" : "AVQ8--xBkvh0m5n1OUEq", "_score" : 1.0, "_source" : { "id" : "3", "name" : "wangwu" } }, { "_index" : "customer", "_type" : "external", "_id" : "AVQ8--xBkvh0m5n1OUEp", "_score" : 1.0, "_source" : { "id" : "2", "name" : "lisi" } } ] } }

可见,_source中的各个字段field,与数据库中的各列对应。
注意,_source中的id是es_test表中的id列,索引中document的id是自动生成的,二者并不一样。
至此,从数据库MySQL导入ES建立索引的过程就完成了。

参考资料

http://www.voidcn.com/blog/kdchxue/article/p-5778237.html

转载于:https://www.cnblogs.com/gongchixin/articles/10214521.html

相关文章:

  • 高性能JavaScript(数据存取)
  • 通过cmake在Android中调用c语言,且三方应用通过so库调用c语言
  • request设置属性 一般当做下一个页面的结果集
  • Niagara基于javascript的控件开发
  • SpringBoot之打成war包部署到Tomcat
  • 基本数据类型中的浮点类型
  • MyBaits 常见面试题
  • 洛谷p1072 gcd,质因数分解
  • 大结局---Miracl库下完全实现SM2加密算法
  • php封装生成随机数函数
  • 洛谷P3372 【模板】线段树 1
  • python3 练习题100例 (二十九)猴子吃桃问题
  • Floyd判断环算法总结
  • freemarker导出定制excel
  • [bzoj1324]Exca王者之剑_最小割
  • es6(二):字符串的扩展
  • JAVA SE 6 GC调优笔记
  • java8 Stream Pipelines 浅析
  • JavaScript工作原理(五):深入了解WebSockets,HTTP/2和SSE,以及如何选择
  • java概述
  • JS进阶 - JS 、JS-Web-API与DOM、BOM
  • leetcode46 Permutation 排列组合
  • Meteor的表单提交:Form
  • React Native移动开发实战-3-实现页面间的数据传递
  • React系列之 Redux 架构模式
  • Webpack入门之遇到的那些坑,系列示例Demo
  • Web标准制定过程
  • 阿里云前端周刊 - 第 26 期
  • 对象管理器(defineProperty)学习笔记
  • 深度学习中的信息论知识详解
  • 我感觉这是史上最牛的防sql注入方法类
  • 你学不懂C语言,是因为不懂编写C程序的7个步骤 ...
  • ​比特币大跌的 2 个原因
  • #【QT 5 调试软件后,发布相关:软件生成exe文件 + 文件打包】
  • #define与typedef区别
  • #pragma multi_compile #pragma shader_feature
  • $NOIp2018$劝退记
  • (delphi11最新学习资料) Object Pascal 学习笔记---第7章第3节(封装和窗体)
  • (DFS + 剪枝)【洛谷P1731】 [NOI1999] 生日蛋糕
  • (react踩过的坑)Antd Select(设置了labelInValue)在FormItem中initialValue的问题
  • (Redis使用系列) SpringBoot 中对应2.0.x版本的Redis配置 一
  • (保姆级教程)Mysql中索引、触发器、存储过程、存储函数的概念、作用,以及如何使用索引、存储过程,代码操作演示
  • (二)hibernate配置管理
  • (二)WCF的Binding模型
  • (二开)Flink 修改源码拓展 SQL 语法
  • (附源码)spring boot智能服药提醒app 毕业设计 102151
  • (十六)串口UART
  • (译)2019年前端性能优化清单 — 下篇
  • (最简单,详细,直接上手)uniapp/vue中英文多语言切换
  • .axf 转化 .bin文件 的方法
  • .net framwork4.6操作MySQL报错Character set ‘utf8mb3‘ is not supported 解决方法
  • .NET Windows:删除文件夹后立即判断,有可能依然存在
  • .Net 中Partitioner static与dynamic的性能对比
  • .Net 中的反射(动态创建类型实例) - Part.4(转自http://www.tracefact.net/CLR-and-Framework/Reflection-Part4.aspx)...
  • .Net 转战 Android 4.4 日常笔记(4)--按钮事件和国际化