/**
* es-api的方法学习:
* 1.prepareIndex方法:索引数据到ElasticSearch
* 2.prepareGet方法:获取信息
* 3.prepareDelete方法:删除信息
* 4.update方法:更新信息
* 4.1 upsert:在使用update方法时:
* a:针对文档不存在的情况时,做出index数据的操作,update无效;
* b:如果文档存在,那么index数据操作无效,update有效;
*/
public
static
void
main(String[] args)
throws
IOException, InterruptedException, ExecutionException {
Settings settings = Settings.settingsBuilder().put(
"cluster.name"
,
"myApp"
).build();
Client client =
null
;
try
{
client = TransportClient.builder().settings(settings).build().
addTransportAddress(
new
InetSocketTransportAddress(InetAddress.getByName(
"101.200.124.27"
),
9300
));
}
catch
(UnknownHostException e) {
e.printStackTrace();
}
SimpleDateFormat df =
new
SimpleDateFormat(
"yyyy-MM-dd"
);
XContentBuilder jsonBuilder = XContentFactory.jsonBuilder()
.startObject()
.field(
"user"
,
"yuchen"
)
.field(
"interest"
,
"reading book"
)
.field(
"insert_time"
,df.format(
new
Date()))
.endObject();
IndexResponse response = client.prepareIndex(
"index-test"
,
"weibo"
,
"4"
)
.setSource(jsonBuilder)
.get();
String _index = response.getIndex();
String _type = response.getType();
String _id = response.getId();
long
_version = response.getVersion();
boolean
created = response.isCreated();
System.out.println(_index+
" "
+_type+
" "
+_id+
" "
+_version+
" "
+created);
GetResponse getResponse = client.prepareGet(
"index-test"
,
"weibo"
,
"1"
).get();
System.out.println(getResponse.getSourceAsString());
DeleteResponse deleteResponse = client.prepareDelete(
"index-test"
,
"weibo"
,
"4"
).get();
System.out.println(deleteResponse.isFound());
UpdateRequest updateRequest =
new
UpdateRequest();
updateRequest.index(
"index-test"
);
updateRequest.type(
"weibo"
);
updateRequest.id(
"1"
);
updateRequest.doc(XContentFactory.jsonBuilder().startObject().field(
"interest"
,
"music"
).endObject());
UpdateResponse updateResponse = client.update(updateRequest).get();
System.out.println(updateResponse.isCreated());
UpdateResponse updateResponse2 = client.prepareUpdate(
"index-test"
,
"weibo"
,
"1"
)
.setDoc(XContentFactory.jsonBuilder()
.startObject()
.field(
"interest2"
,
"reading"
)
.endObject()).get();
System.out.println(updateResponse2.isCreated());
IndexRequest indexRequest =
new
IndexRequest(
"index-test"
,
"weibo"
,
"14"
);
indexRequest.source(XContentFactory.jsonBuilder()
.startObject()
.field(
"user"
,
"yuchen2"
)
.field(
"interest"
,
"eating"
)
.field(
"insert_time"
,df.format(
new
Date()))
.endObject());
UpdateRequest updateRequest3 =
new
UpdateRequest(
"index-test"
,
"weibo"
,
"14"
);
updateRequest3.doc(XContentFactory.jsonBuilder()
.startObject()
.field(
"interest2"
,
"love"
)
.endObject()
).upsert(indexRequest);
client.update(updateRequest3).get();
if
(client !=
null
){
client.close();
}
}