1.创建索引
/**
* 创建索引
*
* @param indexName
*/
public static void createIndex(String indexName) {
//插入前删除,以免报错
boolean flag = client.admin().indices().exists(new IndicesExistsRequest().indices(new String[]{indexName})).actionGet().isExists();
if (flag){
client.admin().indices().prepareDelete(indexName).execute().actionGet();
}
client.admin().indices().prepareCreate(indexName).get();
//client.admin().indices().prepareCreate(indexName)
// .setSettings(Settings.builder()
// .put("index.number_of_shards", 3)
// .put("index.number_of_replicas", 2)
// )
// .get();
}
2.创建mapping
/**
* 创建mapping,根据需求修改
*
* @param indexName
* @param typeName
*/
public static void createMapping(String indexName, String typeName) {
XContentBuilder mappingType = null;
try {
mappingType = jsonBuilder()
.startObject()
.startObject(typeName)
.startObject("properties")
.startObject("id").field("type", "integer").field("store", "yes").endObject()
.startObject("Name").field("type", "string").field("store", "yes").field("analyzer", "ik_smart").field("search_analyzer", "ik_smart").endObject()
.startObject("updatedate").field("type", "date").field("store", "yes").endObject()
.endObject()
.endObject()
.endObject();
} catch (IOException e) {
logger.error("build company mapping failed", e);
}
PutMappingRequest mapping = Requests.putMappingRequest(indexName).type(typeName).source(mappingType);
client.admin().indices().putMapping(mapping).actionGet();
client.admin().indices().prepareRefresh().get();
//client.close();
}