ElasticSearch客户端提供了多种方式的数据创建方式,包括json串,map,内置工具;我们正式开始一般用json格式,借助json工具框架,比如gson ,json-lib,fastjson等等;
package com.hbk.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;
public class EsTest {
private static String host = "192.168.8.133";
private static int port = 9300;
private TransportClient client = null;
/**
* 获取连接
*
* @throws Exception
*/
@SuppressWarnings({ "resource", "unchecked" })
@Before
public void getClient() throws Exception {
client = new PreBuiltTransportClient(Settings.EMPTY).addTransportAddress(new InetSocketTransportAddress(InetAddress.getByName(host), port));
}
/**
* 关闭连接
*/
@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());
}
}