ES7学习日记——JavaRESTClient索引管理:创建索引
ES7学习⽇记——JavaRESTClient索引管理:创建索引1、创建新建索引请求对象
CreateIndexRequest request=new CreateIndexRequest(name);
2、通过CreateIndexRequest对象设置分⽚、副本和映射
request.settings(Settings.builder().put("index.number_of_shards", 3).put("index.number_of_replicas", 1));
request.mapping(mappings,XContentType.JSON);怎么创建自己的博客
  这⾥的mappings可以之String,⽐如:
request.mapping(
"{\n" +
"  \"properties\": {\n" +
"    \"message\": {\n" +
"      \"type\": \"text\"\n" +
"    }\n" +
"  }\n" +
"}",
XContentType.JSON);
  也可以是Map:
Map<String, Object> message = new HashMap<>();
message.put("type", "text");
Map<String, Object> properties = new HashMap<>();
properties.put("message", message);
Map<String, Object> mapping = new HashMap<>();
mapping.put("properties", properties);
request.mapping(mapping);
  也可以是XContentBuilder对象:
XContentBuilder builder = XContentFactory.jsonBuilder();
builder.startObject();
{
builder.startObject("properties");
{
builder.startObject("message");
{
builder.field("type", "text");
}
}
}
request.mapping(builder);
3、通过RestHighLevelClient执⾏请求
  ⾸先,创建RestHighLevelClient对象:
RestHighLevelClient client = new RestHighLevelClient(
RestClient.builder(new HttpHost("localhost",9200,"http")));
  执⾏新建索引请求:
CreateIndexResponse createIndexResponse = client.indices().create(request, RequestOptions.DEFAULT);
  通过创建索引响应来试试是否创建成功:
boolean acknowledged = createIndexResponse.isAcknowledged();
boolean shardsAcknowledged = createIndexResponse.isShardsAcknowledged();
  如果这两个布尔值为true,创建成功。下⾯附上完整代码:
public class CreateIndex {
private String name;
private int shards;
private int replicas;
private String mappings;
public CreateIndex(String name,int shards,int replicas,String mappings) {
this.name=name;
this.shards=shards;
this.mappings=mappings;
}
public void createIndex() {
CreateIndexRequest request=new CreateIndexRequest(name);
request.settings(Settings.builder().put("index.number_of_shards", shards).put("index.number_of_replicas", replicas));        request.mapping(mappings,XContentType.JSON);
RestHighLevelClient client = new RestHighLevelClient(
RestClient.builder(new HttpHost("localhost",9200,"http")));
CreateIndexResponse createIndexResponse;
try {
createIndexResponse = client.indices().create(request, RequestOptions.DEFAULT);
boolean acknowledged = createIndexResponse.isAcknowledged();
boolean shardsAcknowledged = createIndexResponse.isShardsAcknowledged();
if(acknowledged && shardsAcknowledged) {
System.out.println("索引创建成功!");
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public static void main(String args[]) throws IOException {
String mappings="{\r\n" +
"    \"properties\":{\r\n" +
"        \"title\":{\r\n" +
"            \"type\":\"text\",\r\n" +
"            \"analyzer\":\"ik_smart\"\r\n" +
"        },\r\n" +
"        \"content\":{\r\n" +
"            \"type\":\"text\",\r\n" +
"            \"analyzer\":\"ik_smart\"\r\n" +
"        },\r\n" +
"        \"date\":{\r\n" +
"            \"type\":\"text\"\r\n" +
"        }\r\n" +
"    }\r\n" +
"}";
CreateIndex request=new CreateIndex("blog",3,1,mappings);
}
}

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。