es是什么意思java_Elasticsearch----java操作ES

项目创建

添加依赖

org.springframework.boot

spring-boot-starter-data-elasticsearch

2.1.7.RELEASE

org.elasticsearch.client

elasticsearch-rest-high-level-client

6.2.1

使用

1、application配置

xuecheng:

elasticsearch:

hostlist: ${eshostlist:127.0.0.1:9200} #多个结点中间用逗号分隔

2、配置Elasticsearch

使用一个client即可,我们使用restHighLevelClient

@Configuration

public class ElasticsearchConfig {

@Value("${xuecheng.elasticsearch.hostlist}")

private String hostlist;

@SuppressWarnings("all")

@Bean

public RestHighLevelClient restHighLevelClient(){

//解析hostlist配置信息

String[] split = hostlist.split(",");

//创建HttpHost数组,其中存放es主机和端口的配置信息

HttpHost[] httpHostArray = new HttpHost[split.length];

for(int i=0;i

String item = split[i];

httpHostArray[i] = new HttpHost(item.split(":")[0], Integer.parseInt(item.split(":")[1]), "http");

}

//创建RestHighLevelClient客户端

return new RestHighLevelClient(RestClient.builder(httpHostArray));

}

//项目主要使用RestHighLevelClient,对于低级的客户端暂时不用

@SuppressWarnings("all")

@Bean

public RestClient restClient(){

//解析hostlist配置信息

String[] split = hostlist.split(",");

//创建HttpHost数组,其中存放es主机和端口的配置信息

HttpHost[] httpHostArray = new HttpHost[split.length];

for(int i=0;i

String item = split[i];

httpHostArray[i] = new HttpHost(item.split(":")[0], Integer.parseInt(item.split(":")[1]), "http");

}

return RestClient.builder(httpHostArray).build();

}

}

3、测试

@SpringBootTest

@RunWith(SpringRunner.class)

public class TestIndex {

@Autowired

RestHighLevelClient client;

//测试中没有使用restClient

@Autowired

RestClient restClient;

//创建索引库

@Test

public void testCreateIndex() throws IOException {

//创建索引对象

CreateIndexRequest createIndexRequest = new CreateIndexRequest("xc_course");

//设置参数

createIndexRequest.settings(Settings.builder().put("number_of_shards", "1").put("number_of_replicas", "0"));

//指定映射

createIndexRequest.mapping("doc", "{\n" +

" \"properties\": {\n" +

" \"name\": {\n" +

" \"type\": \"text\"\n" +

" },\n" +

" \"description\": {\n" +

" \"type\": \"text\"\n" +

" },\n" +

" \"studymodel\": {\n" +

" \"type\": \"keyword\"\n" +

" },\n" +

" \"pic\":{\n" +

" \t\"type\":\"text\"\n" +

" }\n" +

" }\n" +

"}", XContentType.JSON);

//操作索引的客户端

IndicesClient indices = client.indices();

//执行创建索引库

CreateIndexResponse createIndexResponse = indices.create(createIndexRequest);

//得到响应

boolean acknowledged = createIndexResponse.isAcknowledged();

System.out.println(acknowledged);

}

//删除索引库

@Test

public void testDeleteIndex() throws IOException {

//删除索引对象

DeleteIndexRequest deleteIndexRequest = new DeleteIndexRequest("xc_course");

//操作索引的客户端

IndicesClient indices = client.indices();

//执行删除索引

DeleteIndexResponse delete = indices.delete(deleteIndexRequest);

//得到响应

boolean acknowledged = delete.isAcknowledged();

System.out.println(acknowledged);

}

//添加文档

@Test

public void testAddDoc() throws IOException {

//文档内容

//准备json数据

Map jsonMap = new HashMap<>();

jsonMap.put("name", "spring cloud实战");

jsonMap.put("description", "本课程主要从四个章节进行讲解: 1.微服务架构入门 2.spring cloud 基础入门 3.实战Spring Boot 4.注册中心eureka。");

jsonMap.put("studymodel", "201001");

jsonMap.put("pic", "http://xx/xx/abd.png");

//SimpleDateFormat dateFormat =new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

//jsonMap.put("timestamp", dateFormat.format(new Date()));

//创建索引创建对象

IndexRequest indexRequest = new IndexRequest("xc_course", "doc");

//文档内容

indexRequest.source(jsonMap);

//通过client进行http的请求

IndexResponse indexResponse = client.index(indexRequest);

DocWriteResponse.Result result = indexResponse.getResult();

System.out.println(result);

}

//查询文档

@Test

public void testGetDoc() throws IOException {

//查询请求对象

GetRequest getRequest = new GetRequest("xc_course", "doc", "jxhqfW4B7IA_qgGLOu2z");

GetResponse getResponse = client.get(getRequest);

//得到文档的内容

Map sourceAsMap = getResponse.getSourceAsMap();

System.out.println(sourceAsMap);

}

//更新文档(局部更新)

@Test

public void updateDoc() throws IOException {

UpdateRequest updateRequest = new UpdateRequest("xc_course", "doc", "jxhqfW4B7IA_qgGLOu2z");

Map map = new HashMap<>();

map.put("name", "spring");

updateRequest.doc(map);

UpdateResponse update = client.update(updateRequest);

RestStatus status = update.status();

System.out.println(status);

}

//根据id删除文档

@Test

public void testDelDoc() throws IOException {

//删除文档id

String id = "jxhqfW4B7IA_qgGLOu2z";

//删除索引请求对象

DeleteRequest deleteRequest = new DeleteRequest("xc_course", "doc", id);

//响应对象

DeleteResponse deleteResponse = client.delete(deleteRequest);

//获取响应结果

DocWriteResponse.Result result = deleteResponse.getResult();

System.out.println(result);

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值