Elasticsearch一個分布式多使用者能力的全文搜尋引擎,基于RESTful web接口。ElasticSearch也支援存儲,查詢,排序,分頁等資料庫的功能。
下面介紹下如何把資料導入Elasticsearch
第一種方法:手動導入
1、cat test.json
1
2
<code>{"index":{"_index":"stuff_orders","_type":"order_list","_id":903713}}</code>
<code>{"real_name":"劉備","user_id":48430,"address_province":"上海","address_city":"浦東新區","address_district":null,"address_street":"上海市浦東新區廣蘭路1弄2号345室","price":30.0,"carriage":6.0,"state":"canceled","created_at":"2013-10-24T09:09:28.000Z","payed_at":null,"goods":["營養早餐:火腿麥滿分"],"position":[121.53,31.22],"weight":70.0,"height":172.0,"sex_type":"female","birthday":"1988-01-01"}</code>
2、導入elasticsearch
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<code>[root@ELKServer opt]# curl -XPOST 'localhost:9200/stuff_orders/_bulk?pretty' --data-binary @test.json</code>
<code>{</code>
<code> </code><code>"took" : 600,</code>
<code> </code><code>"errors" : false,</code>
<code> </code><code>"items" : [ {</code>
<code> </code><code>"index" : {</code>
<code> </code><code>"_index" : "stuff_orders",</code>
<code> </code><code>"_type" : "order_list",</code>
<code> </code><code>"_id" : "903713",</code>
<code> </code><code>"_version" : 1,</code>
<code> </code><code>"_shards" : {</code>
<code> </code><code>"total" : 2,</code>
<code> </code><code>"successful" : 1,</code>
<code> </code><code>"failed" : 0</code>
<code> </code><code>},</code>
<code> </code><code>"status" : 201</code>
<code> </code><code>}</code>
<code> </code><code>} ]</code>
<code>}</code>
3、檢視elasticsearch是否存在資料
20
21
22
23
24
25
26
27
<code>[root@ELKServer opt]# curl localhost:9200/stuff_orders/order_list/903713?pretty</code>
<code> </code><code>"_index" : "stuff_orders",</code>
<code> </code><code>"_type" : "order_list",</code>
<code> </code><code>"_id" : "903713",</code>
<code> </code><code>"_version" : 1,</code>
<code> </code><code>"found" : true,</code>
<code> </code><code>"_source" : {</code>
<code> </code><code>"real_name" : "劉備",</code>
<code> </code><code>"user_id" : 48430,</code>
<code> </code><code>"address_province" : "上海",</code>
<code> </code><code>"address_city" : "浦東新區",</code>
<code> </code><code>"address_district" : null,</code>
<code> </code><code>"address_street" : "上海市浦東新區廣蘭路1弄2号345室",</code>
<code> </code><code>"price" : 30.0,</code>
<code> </code><code>"carriage" : 6.0,</code>
<code> </code><code>"state" : "canceled",</code>
<code> </code><code>"created_at" : "2013-10-24T09:09:28.000Z",</code>
<code> </code><code>"payed_at" : null,</code>
<code> </code><code>"goods" : [ "營養早餐:火腿麥滿分" ],</code>
<code> </code><code>"position" : [ 121.53, 31.22 ],</code>
<code> </code><code>"weight" : 70.0,</code>
<code> </code><code>"height" : 172.0,</code>
<code> </code><code>"sex_type" : "female",</code>
<code> </code><code>"birthday" : "1988-01-01"</code>
<code> </code><code>}</code>
第二種方法:從資料庫中導入
參考:http://blog.csdn.net/laoyang360/article/details/51694519
1、下載下傳安裝插件elasticsearch-jdbc-2.3.4.0
<code>weget http:</code><code>//xbib</code><code>.org</code><code>/repository/org/xbib/elasticsearch/importer/elasticsearch-jdbc/2</code><code>.3.4.0</code><code>/elasticsearch-jdbc-2</code><code>.3.4.0-dist.zip</code>
elasticsearch-jdbc-2.3.4.0-dist.zip的版本要和你安裝的elasticsearch對應。
<code>unzip elasticsearch-jdbc-2.3.4.0-dist.zip</code>
<code>mv</code> <code>elasticsearch-jdbc-2.3.4.0 </code><code>/usr/local/</code>
<code>cd</code> <code>/usr/local/elasticsearch-jdbc-2</code><code>.3.4.0/</code>
2、配置腳本
<code>vim </code><code>import</code><code>.sh</code>
<code>#!/bin/sh</code>
<code>JDBC_IMPORTER_HOME=</code><code>/usr/local/elasticsearch-jdbc-2</code><code>.3.4.0</code>
<code>bin=$JDBC_IMPORTER_HOME</code><code>/bin</code>
<code>lib=$JDBC_IMPORTER_HOME</code><code>/lib</code>
<code>echo</code> <code>'{</code>
<code>"type"</code> <code>: </code><code>"jdbc"</code><code>,</code>
<code>"jdbc"</code><code>: {</code>
<code>"elasticsearch.autodiscover"</code><code>:</code><code>true</code><code>,</code>
<code>"elasticsearch.cluster"</code><code>:</code><code>"my-application"</code><code>, </code><code>#簇名 詳見:/usr/local/elasticsearch/config/elasticsearch.yml</code>
<code>"url"</code><code>:</code><code>"jdbc:mysql://localhost:3306/test"</code><code>, </code><code>#mysql資料庫位址</code>
<code>"user"</code><code>:</code><code>"test"</code><code>, </code><code>#mysql使用者名</code>
<code>"password"</code><code>:</code><code>"1234"</code><code>, </code><code>#mysql密碼</code>
<code>"sql"</code><code>:</code><code>"select *,id as _id from workers_info"</code><code>,</code>
<code>"elasticsearch"</code> <code>: {</code>
<code> </code><code>"host"</code> <code>: </code><code>"192.168.10.49"</code><code>,</code>
<code> </code><code>"port"</code> <code>: 9300</code>
<code>},</code>
<code>"index"</code> <code>: </code><code>"myindex"</code><code>, </code><code>#新的index</code>
<code>"type"</code> <code>: </code><code>"mytype"</code> <code>#新的type</code>
<code>}'| java \</code>
<code> </code><code>-</code><code>cp</code> <code>"${lib}/*"</code> <code>\</code>
<code> </code><code>-Dlog4j.configurationFile=${bin}</code><code>/log4j2</code><code>.xml \</code>
<code> </code><code>org.xbib.tools.Runner \</code>
<code> </code><code>org.xbib.tools.JDBCImporter</code>
chmod + import.sh
sh import.sh
3、檢視資料是否導入elasticsearch
28
29
30
31
<code>[root@ELKServer bin]</code><code># curl -XGET 'http://localhost:9200/myindex/mytype/_search?pretty'</code>
<code> </code><code>"took"</code> <code>: 15,</code>
<code> </code><code>"timed_out"</code> <code>: </code><code>false</code><code>,</code>
<code> </code><code>"_shards"</code> <code>: {</code>
<code> </code><code>"total"</code> <code>: 5,</code>
<code> </code><code>"successful"</code> <code>: 5,</code>
<code> </code><code>"failed"</code> <code>: 0</code>
<code> </code><code>},</code>
<code> </code><code>"hits"</code> <code>: {</code>
<code> </code><code>"total"</code> <code>: 1,</code>
<code> </code><code>"max_score"</code> <code>: 1.0,</code>
<code> </code><code>"hits"</code> <code>: [ {</code>
<code> </code><code>"_index"</code> <code>: </code><code>"myindex"</code><code>,</code>
<code> </code><code>"_type"</code> <code>: </code><code>"mytype"</code><code>,</code>
<code> </code><code>"_id"</code> <code>: </code><code>"AVZyXCReGHjmX33dpJi3"</code><code>,</code>
<code> </code><code>"_score"</code> <code>: 1.0,</code>
<code> </code><code>"_source"</code> <code>: {</code>
<code> </code><code>"id"</code> <code>: 1,</code>
<code> </code><code>"workername"</code> <code>: </code><code>"xing"</code><code>,</code>
<code> </code><code>"salary"</code> <code>: 10000,</code>
<code> </code><code>"tel"</code> <code>: </code><code>"1598232123"</code><code>,</code>
<code> </code><code>"mailbox"</code> <code>: </code><code>"[email protected]"</code><code>,</code>
<code> </code><code>"department"</code> <code>: </code><code>"yanfa"</code><code>,</code>
<code> </code><code>"sex"</code> <code>: </code><code>"F"</code><code>,</code>
<code> </code><code>"qq"</code> <code>: 736019646,</code>
<code> </code><code>"EmployedDates"</code> <code>: </code><code>"2012-12-21T00:00:00.000+08:00"</code>
<code> </code><code>}</code>
<code> </code><code>} ]</code>
<a href="http://s2.51cto.com/wyfs02/M00/86/21/wKioL1e1dCCB5tn7AABBoLN-zp4909.png" target="_blank"></a>
本文轉自 irow10 51CTO部落格,原文連結:http://blog.51cto.com/irow10/1840034,如需轉載請自行聯系原作者