文章目录
- 三、`RestClient`操作索引库与文档
-
- 3.1 操作索引库
- 3.2 操作文档
- 结束语
三、RestClient
操作索引库与文档
ES
官方提供了各种不同语言的客户端,用来操作ES
。这些客户端的本质就是组装DSL
语句,通过http
请求发送给ES
。
官方文档地址: https://www.elastic.co/guide/en/elasticsearch/client/index.html
数据库文件:视频里展示的数据库表可以使用自己有的其他数据替代,不一定非要一致。
自己手敲了个工程项目(包含SQL文件):测试RestClient项目文件
3.1 操作索引库
设计数据表对应的mappings
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"
}
}
}
}
引入依赖
properties>
java.version>1.8java.version>
elasticsearch.version>7.12.1elasticsearch.version>
mybatis-plus-boot.version>3.4.2mybatis-plus-boot.version>
properties>
dependency>
groupId>org.elasticsearch.clientgroupId>
artifactId>elasticsearch-rest-high-level-clientartifactId>
version>7.12.1version>
dependency>
初始化
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
public class MovieIndexTest {
// ...........
@Test
void testCreateMovieIndex() throws IOException {
// 创建Request
CreateIndexRequest request = new CreateIndexRequest("movie");
// 准备请求数据
request.source(CREATE_MOVIE, XContentType.JSON);
// 发送请求
client.indices().creat服务器托管网e(request, RequestOptions.DEFAULT);
服务器托管网}
// ...........
}
删除、获取,判断是否存在
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】
结束语
上一篇:二、ElasticSearch中索引库与文档操作
服务器托管,北京服务器托管,服务器租用 http://www.fwqtg.net
相关推荐: MySQL的index merge(索引合并)导致数据库死锁分析与解决方案 | 京东云技术团队
背景 在DBS-集群列表-更多-连接查询-死锁中,看到9月22日有数据库死锁日志,后排查发现是因为mysql的优化-index merge(索引合并)导致数据库死锁。 定义 index merge(索引合并):该数据库查询优化的一种技术,在mysql 5.1之…