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
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());
}
}
|