b.查询文档
这里注意请求时要把参数调整为none,否则会报错。
GET请求 http://localhost:9200/user/_doc/1 #查询单个文档 GET请求 http://localhost:9200/user/_search #查询全部文档
c.条件查询
GET请求 http://localhost:9200/user/_search?q=name:cllb # q=查询属性名:查询属性值
d.修改文档(全量更新)
PUT请求 http://localhost:9200/user/_doc/1 文档通过请求参数传递,数据格式json { "name":"ccc", "type":"bb", "description":"123" }
e.修改文档(部分更新)
POST请求 http://localhost:9200/user/_update/1
文档通过请求参数传递,数据格式json { "doc":{ #部分更新并不是对原始文档进行更新,而是对原始文档对象中的doc属性中的指定属性更新 "name":"springboot" #仅更新提供的属性值,未提供的属性值不参与更新操作 }
f.删除文档
DELETE请求 http://localhost:9200/books/_doc/1
4. 整合(早期低级版)
其实和整合Redis,MongoDB,ES都是一样的。
下面就开始springboot整合ES,操作步骤如下:
(1):导入springboot整合ES的starter坐标
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-elasticsearch</artifactId> </dependency>
(2):进行基础配置
spring: elasticsearch: rest: uris: http://localhost:9200
配置ES服务器地址,端口9200
(3):使用springboot整合ES的专用客户端接口ElasticsearchRestTemplate来进行操作
@SpringBootTest class Springboot18EsApplicationTests { @Autowired private ElasticsearchRestTemplate template; }
(4)连接pojo层
package com.test; import org.springframework.data.elasticsearch.annotations.Document; import java.lang.annotation.Documented; @Document(indexName = "user") public class User { private Integer id; private String name; private String type; private String description; public User(Integer id, String name, String type, String description) { this.id = id; this.name = name; this.type = type; this.description = description; } public User() { } public Integer getId() { return id; } public void setId(Integer id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getType() { return type; } public void setType(String type) { this.type = type; } public String getDescription() { return description; } public void setDescription(String description) { this.description = description; } @Override public String toString() { return "Book{" + "id=" + id + ", name='" + name + '\'' + ", type='" + type + '\'' + ", description='" + description + '\'' + '}'; } }
(5)连接dao层
package com.test; import org.elasticsearch.ElasticsearchSecurityException; import org.springframework.data.elasticsearch.repository.ElasticsearchRepository; public interface Esresposity extends ElasticsearchRepository<User,Integer> { }
注: 上述这是ES早期的操作方式,使用的客户端被称为Low Level Client,因为这种操作方式在性能方面略显不足。
于是ES开发了全新的客户端操作方式,称为High Level Client。
高级别客户端与ES版本同步更新,但是springboot最初整合ES的时候使用的是低级别客户端,所以企业开发需要更换成高级别的客户端模式。