• 使用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

  • 相关阅读:
    hdu5914 Triangle 【贪心】
    2016中国大学生程序设计竞赛(ccpc 长春) Fraction【模拟】
    hdu 4034 【floyed变形】
    A
    hdu 2553 N皇后问题【dfs】
    【算法入门经典】7.4回溯法【八皇后问题】
    用javascript实现控制一个文本框的输入字数限制,超出字数限制文本框飘红显示-面试题
    Firebug控制台详解
    CSS实现兼容性的渐变背景(gradient)效果
    jQuery学习——入门jQuery选择器之层次选择器
  • 原文地址:https://www.cnblogs.com/myitroad/p/5740469.html
Copyright © 2020-2023  润新知