Java操作ElasticSearch之创建索引

ElasticSearch客户端提供了多种方式的数据创建方式,包括json串,map,内置工具;我们正式开始一般用json格式,借助json工具框架,比如gson ,json-lib,fastjson等等;


我们给下实例:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
package  com.java1234.es;
 
import  java.net.InetAddress;
import  java.util.Date;
import  java.util.HashMap;
import  java.util.Map;
 
import  org.elasticsearch.action.index.IndexResponse;
import  org.elasticsearch.client.transport.TransportClient;
import  org.elasticsearch.common.settings.Settings;
import  org.elasticsearch.common.transport.InetSocketTransportAddress;
import  org.elasticsearch.common.xcontent.XContentFactory;
import  org.elasticsearch.common.xcontent.XContentType;
import  org.elasticsearch.transport.client.PreBuiltTransportClient;
import  org.junit.After;
import  org.junit.Before;
import  org.junit.Test;
 
import  com.google.gson.JsonObject;
 
/**
  * ElasticSearch客户端连接服务器测试
  * @author Administrator
  *
  */
public  class  EsTest {
 
     private  static  String host= "192.168.1.108" // 服务器地址
     
     private  static  int  port= 9300 // 端口
     
     private  TransportClient client= null ;
     
     /**
      * 获取连接
      * @return
      */
     @SuppressWarnings ({  "unchecked" "resource"  })
     @Before
     public  void  getCient() throws  Exception{
        client =  new  PreBuiltTransportClient(Settings.EMPTY)
                    .addTransportAddress( new  InetSocketTransportAddress(InetAddress.getByName(EsTest.host), EsTest.port));
     }
     
     /**
      * 关闭连接
      * @param client
      */
     @After
     public  void  close(){
         if (client!= null ){
             client.close();
         }
     }
     
     /**
      * 添加索引
      */
     @Test
     public  void  testIndex() throws  Exception{
         IndexResponse response =client.prepareIndex( "twitter" "tweet" "1" )
             .setSource(XContentFactory.jsonBuilder()
                     .startObject()
                     .field( "user" "kimchy" )
                     .field( "postDate" new  Date())
                     .field( "message" "trying out Elasticsearch" )
                 .endObject()
                     )
             .get();
         System.out.println( "索引名称:" +response.getIndex());
         System.out.println( "类型:" +response.getType());
         System.out.println( "文档ID:" +response.getId());  // 第一次使用是1
         System.out.println( "当前实例状态:" +response.status());
     }
     
     /**
      * 添加索引
      */
     @Test
     public  void  testIndex2() throws  Exception{
         String json =  "{"  +
                 "\"user\":\"kimchy\","  +
                 "\"postDate\":\"2013-01-30\","  +
                 "\"message\":\"trying out Elasticsearch\""  +
             "}" ;
         
         IndexResponse response =client.prepareIndex( "weibo" "tweet" )
             .setSource(json,XContentType.JSON)
             .get();
         System.out.println( "索引名称:" +response.getIndex());
         System.out.println( "类型:" +response.getType());
         System.out.println( "文档ID:" +response.getId());  // 第一次使用是1
         System.out.println( "当前实例状态:" +response.status());
     }
     
     /**
      * 添加索引
      */
     @Test
     public  void  testIndex3() throws  Exception{
         Map<String, Object> json =  new  HashMap<String, Object>();
         json.put( "user" , "kimchy" );
         json.put( "postDate" , new  Date());
         json.put( "message" , "trying out Elasticsearch" );
         
         IndexResponse response =client.prepareIndex( "qq" "tweet" )
             .setSource(json)
             .get();
         System.out.println( "索引名称:" +response.getIndex());
         System.out.println( "类型:" +response.getType());
         System.out.println( "文档ID:" +response.getId());  // 第一次使用是1
         System.out.println( "当前实例状态:" +response.status());
     }
     
     /**
      * 添加索引
      */
     @Test
     public  void  testIndex4() throws  Exception{
         JsonObject jsonObject= new  JsonObject();
         jsonObject.addProperty( "user" "kimchy" );
         jsonObject.addProperty( "postDate" "1989-11-11" );
         jsonObject.addProperty( "message" "trying out Elasticsearch" );
         
         IndexResponse response =client.prepareIndex( "qq" "tweet" )
             .setSource(jsonObject.toString(),XContentType.JSON)
             .get();
         System.out.println( "索引名称:" +response.getIndex());
         System.out.println( "类型:" +response.getType());
         System.out.println( "文档ID:" +response.getId());  // 第一次使用是1
         System.out.println( "当前实例状态:" +response.status());
     }
     
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值