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

使用Elasticsearch-jdbc为MySQL数据库建立索引的更多相关文章

  1. 千万级MySQL数据库建立索引,提高性能的秘诀

    实践中如何优化MySQL 实践中,MySQL的优化主要涉及SQL语句及索引的优化.数据表结构的优化.系统配置的优化和硬件的优化四个方面,如下图所示: SQL语句及索引的优化 SQL语句的优化 SQL语 ...

  2. 为mysql数据库建立索引

    前些时候,一位颇高级的程序员居然问我什么叫做索引,令我感到十分的惊奇,我想这绝不会是沧海一粟,因为有成千上万的开发者(可能大部分是使用MySQL的)都没有受过有关数据库的正规培训,尽管他们都为客户做过 ...

  3. Mysql数据库建立索引的优缺点有哪些?

    索引是对数据库表中一列或多列的值进行排序的一种结构,使用索引可快速访问数据库表中的特定信息. 什么是索引 数据库索引好比是一本书前面的目录,能加快数据库的查询速度. 例如这样一个查询:select * ...

  4. JDBC连接MySQL数据库代码模板

    下面这个例子是最简单的JDBC连接MySQL数据库的例子. 一般步骤: 1.注册驱动: 2.建立连接: 3.创建语句: 4.处理结果: 5.释放资源. 注意: 1.软件开发环境:MyEclipse 8 ...

  5. java jdbc 连接mysql数据库 实现增删改查

    好久没有写博文了,写个简单的东西热热身,分享给大家. jdbc相信大家都不陌生,只要是个搞java的,最初接触j2ee的时候都是要学习这么个东西的,谁叫程序得和数据库打交道呢!而jdbc就是和数据库打 ...

  6. JDBC连接MySQL数据库及演示样例

    JDBC是Sun公司制定的一个能够用Java语言连接数据库的技术. 一.JDBC基础知识         JDBC(Java Data Base Connectivity,java数据库连接)是一种用 ...

  7. JDBC连接MySQL数据库及示例

      JDBC是Sun公司制定的一个可以用Java语言连接数据库的技术. 一.JDBC基础知识         JDBC(Java Data Base Connectivity,java数据库连接)是一 ...

  8. Java通过JDBC 进行MySQL数据库操作

    转自: http://blog.csdn.net/tobetheender/article/details/52772157 Java通过JDBC 进行MySQL数据库操作 原创 2016年10月10 ...

  9. 使用JDBC操作MySQL数据库

    一.JDBC简介 JDBC(Java DataBase Connectivity)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一的访问,它由一组用Java语言编写的类和接口组 ...

随机推荐

  1. CodeForces - 156C:Cipher (不错的DP)

    Sherlock Holmes found a mysterious correspondence of two VIPs and made up his mind to read it. But t ...

  2. ZOJ2314 Reactor Cooling(有上下界的网络流)

    The terrorist group leaded by a well known international terrorist Ben Bladen is buliding a nuclear ...

  3. docker 存储

    [root@docker01 ~]# docker run --name b1 -v /data -it busybox / # ls bin data dev etc home proc root ...

  4. HAWQ 操作笔记

    1.HAWQ 是不支持主键和外建的,官方文档明确给出 Notes Using OIDs in new applications is not recommended. Avoid assuming t ...

  5. How To Uninstall Software Using The Ubuntu Command Line

    How To Uninstall Software Using The Ubuntu Command Line Uninstall Ubuntu Software Using The Terminal ...

  6. tp验证码

    一.生成验证码 1.commonController.class.php class CommonController extends Controller{ public function getV ...

  7. 如何让 PADS Layout 识别到板框

    如何让 PADS Layout 识别到板框 在很久很久以前 PADS Laout 还是 PowerPCB 的时候,铺铜是不认识板框的. 当有铺铜时必须复制一份板框再设置为铺铜才可以. 但到了 PADS ...

  8. docker 摆渡镜像脚本

    #!/bin/bash if [ $# != 1 ];then echo "Param error";exit; fi DOCKER_NAME=$1 IMAGE_TAG=${DOC ...

  9. try catch(java)

    1 try.catch.finally语句中,在如果try语句有return语句,则返回的之后当前try中变量此时对应的值,此后对变量做任何的修改,都不影响try中return的返回值 2 如果fin ...

  10. MockMVC

    随着RESTful Web Service的流行,测试对外的Service是否满足期望也变的必要的.从Spring 3.2开始Spring了Spring Web测试框架 Spring MVC测试框架提 ...