标签:
既然是开发篇,主要以代码为主,辅助一些说明。所有的内容都是代码实际应该验证过的。
引入的头文件:
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
|
import static org.elasticsearch.node.NodeBuilder.nodeBuilder;import java.io.IOException;import java.net.InetAddress;import java.util.Date;import java.util.Map;import java.util.Set;import org.elasticsearch.action.admin.cluster.health.ClusterHealthResponse;import org.elasticsearch.action.admin.indices.create.CreateIndexRequestBuilder;import org.elasticsearch.action.admin.indices.create.CreateIndexResponse;import org.elasticsearch.action.index.IndexResponse;import org.elasticsearch.client.Client;import org.elasticsearch.client.ClusterAdminClient;import org.elasticsearch.client.transport.TransportClient;import org.elasticsearch.cluster.health.ClusterIndexHealth;import org.elasticsearch.common.settings.Settings;import org.elasticsearch.common.transport.InetSocketTransportAddress;import org.elasticsearch.common.xcontent.XContentBuilder;import org.elasticsearch.common.xcontent.XContentFactory;import org.elasticsearch.node.Node;import static org.elasticsearch.common.xcontent.XContentFactory.*; |
|
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
|
XContentBuilder mapping = XContentFactory.jsonBuilder() .startObject() .startObject("settings") .field("number_of_shards", 1)//设置分片数量 .field("number_of_replicas", 0)//设置副本数量 .endObject() .endObject() .startObject() .startObject(type)//type名称 .startObject("properties") //下面是设置文档列属性。 .startObject("type").field("type", "string").field("store", "yes").endObject() .startObject("eventCount").field("type", "long").field("store", "yes").endObject() .startObject("eventDate").field("type", "date").field("format", "dateOptionalTime").field("store", "yes").endObject() .startObject("message").field("type", "string").field("index", "not_analyzed").field("store", "yes").endObject() .endObject() .endObject() .endObject(); CreateIndexRequestBuilder cirb = client .admin() .indices() .prepareCreate(indexName)//index名称 .setSource(mapping);CreateIndexResponse response = cirb.execute().actionGet();if (response.isAcknowledged()) { System.out.println("Index created.");} else { System.err.println("Index creation failed.");} |
|
1
2
3
4
5
6
7
8
9
10
11
12
|
IndexResponse response = client .prepareIndex(indexName, type, "1") .setSource(//这里可以直接用json字符串 jsonBuilder().startObject() .field("type", "syslog") .field("eventCount", 1) .field("eventDate", new Date()) .field("message", "secilog insert doc test") .endObject()).get();System.out.println("index:"+response.getIndex() +" insert doc id:"+response.getId() +" result:"+response.isCreated()); |
|
1
2
3
4
5
6
|
GetResponse response = client.prepareGet("secilog", "log", "1").get();String source = response.getSource().toString();long version = response.getVersion();String indexName = response.getIndex();String type = response.getType();String id = response.getId(); |
本文由赛克蓝德(secisland)原创,转载请标明作者和出处。
修改文档有两种方式,一种是直接修改,另一种是如果文档不存在则插入存在则修改。
第一种代码
|
1
2
3
4
5
6
7
8
9
|
UpdateRequest updateRequest = new UpdateRequest();updateRequest.index(indexName);updateRequest.type(type);updateRequest.id("1");updateRequest.doc(jsonBuilder() .startObject() .field("type", "file") .endObject());client.update(updateRequest).get(); |
第二种代码:
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
IndexRequest indexRequest = new IndexRequest(indexName, type, "3").source(jsonBuilder() .startObject() .field("type", "syslog") .field("eventCount", 2) .field("eventDate", new Date()) .field("message", "secilog insert doc test") .endObject());UpdateRequest updateRequest = new UpdateRequest(indexName, type, "3") .doc(jsonBuilder() .startObject() .field("type", "file") .endObject()) .upsert(indexRequest); client.update(updateRequest).get(); |
|
1
2
|
DeleteResponse dresponse = client.prepareDelete("secilog", "log", "4").get();boolean isFound = dresponse.isFound(); //文档存在返回true,不存在返回false; |
|
1
2
|
DeleteIndexRequest delete = new DeleteIndexRequest("secilog");client.admin().indices().delete(delete); |
赛克蓝德(secisland)后续会逐步对Elasticsearch的最新版本的各项功能进行分析,近请期待。也欢迎加入secisland公众号进行关注。
标签:
原文地址:http://www.cnblogs.com/bmaker/p/5472054.html