1. import org.apache.http.util.EntityUtils;
  2. import org.apache.lucene.search.TotalHits;
  3. import org.elasticsearch.action.DocWriteResponse;
  4. import org.elasticsearch.action.admin.indices.create.CreateIndexRequest;
  5. import org.elasticsearch.action.admin.indices.create.CreateIndexResponse;
  6. import org.elasticsearch.action.admin.indices.delete.DeleteIndexRequest;
  7. import org.elasticsearch.action.admin.indices.forcemerge.ForceMergeRequest;
  8. import org.elasticsearch.action.get.GetRequest;
  9. import org.elasticsearch.action.get.GetResponse;
  10. import org.elasticsearch.action.index.IndexRequest;
  11. import org.elasticsearch.action.index.IndexResponse;
  12. import org.elasticsearch.action.search.SearchRequest;
  13. import org.elasticsearch.action.search.SearchResponse;
  14. import org.elasticsearch.action.search.SearchScrollRequest;
  15. import org.elasticsearch.action.search.SearchType;
  16. import org.elasticsearch.action.support.master.AcknowledgedResponse;
  17. import org.elasticsearch.client.IndicesClient;
  18. import org.elasticsearch.client.RequestOptions;
  19. import org.elasticsearch.client.Response;
  20. import org.elasticsearch.client.RestHighLevelClient;
  21. import org.elasticsearch.common.unit.TimeValue;
  22. import org.elasticsearch.common.xcontent.XContentBuilder;
  23. import org.elasticsearch.common.xcontent.XContentFactory;
  24. import org.elasticsearch.common.xcontent.XContentType;
  25. import org.elasticsearch.index.query.QueryBuilders;
  26. import org.elasticsearch.search.Scroll;
  27. import org.elasticsearch.search.SearchHit;
  28. import org.elasticsearch.search.SearchHits;
  29. import org.elasticsearch.search.builder.SearchSourceBuilder;
  30. import org.elasticsearch.search.sort.SortOrder;
  31. import org.junit.Test;
  32. import org.junit.runner.RunWith;
  33. import org.springframework.beans.factory.annotation.Autowired;
  34. import org.springframework.boot.test.context.SpringBootTest;
  35. import org.springframework.test.context.junit4.SpringRunner;
  36. import java.io.IOException;
  37. import java.text.ParseException;
  38. import java.text.SimpleDateFormat;
  39. import java.util.*;
  40. @Autowired
  41. RestHighLevelClient client;

创建索引库

  1. // 创建索引库
  2. /*
  3. *
  4. PUT /elasticsearch_test
  5. {
  6. "settings": {},
  7. "mappings": {
  8. "properties": {
  9. "description": {
  10. "type": "text",
  11. "analyzer": "ik_max_word"
  12. },
  13. "name": {
  14. "type": "keyword"
  15. },
  16. "pic": {
  17. "type": "text",
  18. "index": false
  19. },
  20. "studymodel": {
  21. "type": "keyword"
  22. }
  23. }
  24. }
  25. }
  26. **/
  1. // 创建一个索引创建请求对象
  2. CreateIndexRequest createIndexRequest = new CreateIndexRequest("elasticsearch_test");
  3. //设置映射
  4. XContentBuilder builder = XContentFactory.jsonBuilder()
  5. .startObject()
  6. .field("properties")
  7. .startObject()
  8. .field("description").startObject().field("type", "text").field("analyzer", "ik_max_word").endObject()
  9. .field("name").startObject().field("type", "keyword").endObject()
  10. .field("pic").startObject().field("type", "text").field("index", "false").endObject()
  11. .field("studymodel").startObject().field("type", "keyword").endObject()
  12. .endObject()
  13. .endObject();
  14. createIndexRequest.mapping("doc", builder);
  15. // 操作索引的客户端
  16. IndicesClient indicesClient = client.indices();
  17. CreateIndexResponse createIndexResponse = indicesClient.create(createIndexRequest, RequestOptions.DEFAULT);
  18. // 得到响应
  19. boolean acknowledged = createIndexResponse.isAcknowledged();
  20. System.out.println(acknowledged);

另一种方式, 字符串操作

  1. // 创建一个索引创建请求对象
  2. CreateIndexRequest createIndexRequest = new CreateIndexRequest("elasticsearch_test");
  3. //设置映射
  4. createIndexRequest.mapping("doc", "{\n" +
  5. " \"properties\": {\n" +
  6. " \"description\": {\n" +
  7. " \"type\": \"text\",\n" +
  8. " \"analyzer\": \"ik_max_word\"\n" +
  9. " },\n" +
  10. " \"name\": {\n" +
  11. " \"type\": \"keyword\"\n" +
  12. " },\n" +
  13. " \"pic\": {\n" +
  14. " \"type\": \"text\",\n" +
  15. " \"index\": false\n" +
  16. " },\n" +
  17. " \"studymodel\": {\n" +
  18. " \"type\": \"keyword\"\n" +
  19. " }\n" +
  20. " }\n" +
  21. " }", XContentType.JSON);
  22. // 操作索引的客户端
  23. IndicesClient indicesClient = client.indices();
  24. CreateIndexResponse createIndexResponse = indicesClient.create(createIndexRequest, RequestOptions.DEFAULT);
  25. // 得到响应
  26. boolean acknowledged = createIndexResponse.isAcknowledged();
  27. System.out.println(acknowledged);

删除索引

  1. @Test
  2. public void testDeleteIndex() throws IOException {
  3. // 构建 删除索引库的请求对象
  4. DeleteIndexRequest deleteIndexRequest = new DeleteIndexRequest("elasticsearch_test");
  5. IndicesClient indicesClient = client.indices();
  6. AcknowledgedResponse deleteResponse = indicesClient.delete(deleteIndexRequest, RequestOptions.DEFAULT);
  7. // 得到响应
  8. boolean acknowledge = deleteResponse.isAcknowledged();
  9. System.out.println(acknowledge);
  10. }

判断索引是否存在

  1. void ExistIndex() throws IOException {
  2. GetIndexRequest request = new GetIndexRequest("hcode_index");
  3. boolean exists = restHighLevelClient.indices().exists(request, RequestOptions.DEFAULT);
  4. System.out.println(exists);
  5. }