文章目录
- 三、`RestClient`操作索引库与文档
-
- [3.1 操作索引库](#3.1 操作索引库)
- [3.2 操作文档](#3.2 操作文档)
- 结束语
三、RestClient
操作索引库与文档
ES
官方提供了各种不同语言的客户端,用来操作ES
。这些客户端的本质就是组装DSL
语句,通过http
请求发送给ES
。
官方文档地址: https://www.elastic.co/guide/en/elasticsearch/client/index.html
数据库文件:视频里展示的数据库表可以使用自己有的其他数据替代,不一定非要一致。
自己手敲了个工程项目(包含SQL文件):测试RestClient项目文件
3.1 操作索引库
设计数据表 对应的mappings
json
PUT /movie
{
"mappings": {
"properties": {
"all":{
"type": "text",
"analyzer": "ik_max_word"
},
"movieId":{
"type": "keyword"
},
"movieTitle":{
"type": "text",
"analyzer": "ik_max_word",
"copy_to": "all"
},
"movieIntroduction":{
"type": "text",
"analyzer": "ik_max_word",
"copy_to": "all"
},
"movieRating":{
"type": "float"
},
"movieReleaseDate":{
"type": "keyword",
"copy_to": "all"
}
}
}
}
引入依赖
xml
<properties>
<java.version>1.8</java.version>
<elasticsearch.version>7.12.1</elasticsearch.version>
<mybatis-plus-boot.version>3.4.2</mybatis-plus-boot.version>
</properties>
<dependency>
<groupId>org.elasticsearch.client</groupId>
<artifactId>elasticsearch-rest-high-level-client</artifactId>
<version>7.12.1</version>
</dependency>
初始化
java
public class MovieIndexTest {
private RestHighLevelClient client;
@Test
void testInit(){
System.out.println(client);
}
@BeforeEach
void setUp(){
this.client = new RestHighLevelClient(RestClient.builder(
HttpHost.create("http://10.120.54.174:9200")
));
}
@AfterEach
void close() throws IOException {
this.client.close();
}
}
创建movie
索引,CREATE_MOVIE
为上面的 mappings
java
public class MovieIndexTest {
// ...........
@Test
void testCreateMovieIndex() throws IOException {
// 创建Request
CreateIndexRequest request = new CreateIndexRequest("movie");
// 准备请求数据
request.source(CREATE_MOVIE, XContentType.JSON);
// 发送请求
client.indices().create(request, RequestOptions.DEFAULT);
}
// ...........
}
删除、获取,判断是否存在
java
public class MovieIndexTest {
@Test
void testDelete() throws IOException {
DeleteIndexRequest deleteIndexRequest = new DeleteIndexRequest("movie");
client.indices().delete(deleteIndexRequest,RequestOptions.DEFAULT);
}
@Test
void testExists() throws IOException {
GetIndexRequest getIndexRequest = new GetIndexRequest("movie");
boolean exists = client.indices().exists(getIndexRequest, RequestOptions.DEFAULT);
System.out.println(exists);
}
@Test
void testGet() throws IOException {
GetIndexRequest getIndexRequest = new GetIndexRequest("movie");
GetIndexResponse getIndexResponse = client.indices().get(getIndexRequest, RequestOptions.DEFAULT);
System.out.println(getIndexResponse);
}
}
3.2 操作文档
【TODO】