es java 创建索引_Java操作ElasticSearch之创建索引

ElasticSearch客户端提供了多种方式的数据创建方式,包括json串,map,内置工具;我们正式开始一般用json格式,借助json工具框架,比如gson ,json-lib,fastjson等等;

我们给下实例: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 json = 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());

}

}

你可能感兴趣的:(es,java,创建索引)