Java操作ElasticSearch之创建索引

来源:互联网 发布:平面美工 招聘 编辑:程序博客网 时间:2024/06/04 18:51

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());
    }
     
}
原创粉丝点击