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 json =  new  HashMap();
         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());
     }
     
}

你可能感兴趣的:(java开发)