網(wǎng)站首頁 編程語言 正文
文章目錄
- Springboot整合Elasticsearch
- 自定義配置類引入es高級客戶端
- 索引操作API
- 文檔操作API
Springboot整合Elasticsearch
Springboot整合Elasticsearch只需要引入完成以下兩步操作
- 引入依賴:spring-boot-starter-data-elasticsearch
- 在屬性中修改<elasticsearch.version>標簽,將版本改為與elasticsearch服務(wù)器相同的版本即可
- 自定義配置類引入es高級客戶端
自定義配置類引入es高級客戶端
@Configuration
public class ElasticSearchClientConfig {
@Bean
public RestHighLevelClient restHighLevelClient() {
RestHighLevelClient client = new RestHighLevelClient(RestClient.builder(new HttpHost("127.0.0.1", 9200, "http")));
return client;
}
}
索引操作API
@SpringBootTest
class EsIndexTests {
@Autowired
private RestHighLevelClient restHighLevelClient;
/**
* 1、es測試創(chuàng)建索引
* */
@Test
void testCreateIndex() throws Exception {
// 1.創(chuàng)建索引請求
CreateIndexRequest request = new CreateIndexRequest("yang_index");
// 2.客戶端執(zhí)行請求
CreateIndexResponse createIndexResponse = restHighLevelClient.indices().create(request, RequestOptions.DEFAULT);
System.out.println(createIndexResponse);
}
/**
* 2、es測試獲取索引
* */
@Test
void testExistIndex() throws Exception {
// 1.獲取索引請求
GetIndexRequest request = new GetIndexRequest("yang_index");
// 2.客戶端執(zhí)行請求
boolean exists = restHighLevelClient.indices().exists(request, RequestOptions.DEFAULT);
System.out.println(exists);
}
/**
* 3、es測試刪除索引
* */
@Test
void testDeleteIndex() throws Exception {
DeleteIndexRequest request = new DeleteIndexRequest("yang_index");
AcknowledgedResponse response = restHighLevelClient.indices().delete(request, RequestOptions.DEFAULT);
System.out.println(response.isAcknowledged());
}
}
文檔操作API
@SpringBootTest
public class EsDocumentTests {
@Autowired
private RestHighLevelClient restHighLevelClient;
/**
* 1、es測試添加文檔
* */
@Test
void testAddDocument() throws Exception {
User user = new User("yang", 15);
IndexRequest request = new IndexRequest("yang_index");
request.id("2");
request.timeout(TimeValue.timeValueSeconds(1));
request.source(JSON.toJSONString(user), XContentType.JSON);
IndexResponse response = restHighLevelClient.index(request, RequestOptions.DEFAULT);
System.out.println(response.status());
}
/**
* 2、es測試批量添加文檔
* */
@Test
void testAddBatchDocument() throws Exception {
BulkRequest bulkRequest = new BulkRequest();
bulkRequest.timeout(TimeValue.timeValueSeconds(10));
ArrayList<User> users = new ArrayList<>();
users.add(new User("yang1", 21));
users.add(new User("yang2", 22));
users.add(new User("yang3", 23));
users.add(new User("yang4", 24));
users.add(new User("yang5", 25));
for (int i = 0; i < users.size(); i++) {
bulkRequest.add(
new IndexRequest("yang_index")
.id("" + (i+1))
.source(JSON.toJSONString(users.get(i)), XContentType.JSON)
);
}
BulkResponse response = restHighLevelClient.bulk(bulkRequest, RequestOptions.DEFAULT);
System.out.println(response.hasFailures());
}
/**
* 3、es測試文檔是否存在
* */
@Test
void testDocumentIsExists() throws Exception {
GetRequest getRequest = new GetRequest("yang_index", "1");
boolean exists = restHighLevelClient.exists(getRequest, RequestOptions.DEFAULT);
System.out.println(exists);
}
/**
* 4、es測試獲取文檔信息
* */
@Test
void testGetDocument() throws Exception {
GetRequest getRequest = new GetRequest("yang_index", "1");
GetResponse document = restHighLevelClient.get(getRequest, RequestOptions.DEFAULT);
String source = document.getSourceAsString();
System.out.println(source);
}
/**
* 5、es測試更新文檔信息
* */
@Test
void testUpdateDocument() throws Exception {
UpdateRequest updateRequest = new UpdateRequest("yang_index", "1");
updateRequest.timeout(TimeValue.timeValueSeconds(1));
User user = new User();
user.setName("yang_111");
updateRequest.doc(JSON.toJSONString(user), XContentType.JSON);
UpdateResponse response = restHighLevelClient.update(updateRequest, RequestOptions.DEFAULT);
System.out.println(response.status());
}
/**
* 6、es測試刪除文檔
* */
@Test
void testDeleteDocument() throws Exception {
DeleteRequest request = new DeleteRequest("yang_index","1");
request.timeout(TimeValue.timeValueSeconds(1));
DeleteResponse response = restHighLevelClient.delete(request, RequestOptions.DEFAULT);
System.out.println(response.status());
}
/**
* 7、es測試查詢文檔
* SearchRequest 搜索請求
* SearchSourceBuilder 條件構(gòu)造
* HighlightBuilder 構(gòu)建高亮
* TermQueryBuilder 精確查詢
* xxxQueryBuilder 表示對應(yīng)的命令
* */
@Test
void testQueryDocument() throws Exception {
SearchRequest searchRequest = new SearchRequest("yang_index");
//構(gòu)建搜索條件
SearchSourceBuilder sourceBuilder = new SearchSourceBuilder();
//查詢條件
TermQueryBuilder termQueryBuilder = QueryBuilders.termQuery("name", "yang");
//組合
sourceBuilder.query(termQueryBuilder)
.timeout(TimeValue.timeValueSeconds(100));
//封裝進searchRequest中
searchRequest.source(sourceBuilder);
//通過客戶端發(fā)送并得到響應(yīng)
SearchResponse response = restHighLevelClient.search(searchRequest, RequestOptions.DEFAULT);
for (SearchHit hit : response.getHits()) {
System.out.println(hit.getSourceAsString());
}
}
}
原文鏈接:https://blog.csdn.net/koutaoran4812/article/details/126336755
相關(guān)推薦
- 2022-04-12 Python?設(shè)計模式行為型訪問者模式_python
- 2022-04-25 JQuery實現(xiàn)Table的tr上移下移功能_jquery
- 2022-06-21 python繪制帶有色塊的折線圖_python
- 2022-05-21 Deployment副本無狀態(tài)服務(wù)創(chuàng)建及水平擴展_服務(wù)器其它
- 2022-08-06 Golang使用Consul詳解_Golang
- 2021-12-05 Linux系統(tǒng)運行級別詳細介紹_Linux
- 2023-06-04 pandas.DataFrame中提取特定類型dtype的列_python
- 2023-03-29 Python中命令行參數(shù)argparse模塊的使用_python
- 最近更新
-
- window11 系統(tǒng)安裝 yarn
- 超詳細win安裝深度學(xué)習(xí)環(huán)境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎(chǔ)操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區(qū)別,Jav
- spring @retryable不生效的一種
- Spring Security之認證信息的處理
- Spring Security之認證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權(quán)
- redisson分布式鎖中waittime的設(shè)
- maven:解決release錯誤:Artif
- restTemplate使用總結(jié)
- Spring Security之安全異常處理
- MybatisPlus優(yōu)雅實現(xiàn)加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務(wù)發(fā)現(xiàn)-Nac
- Spring Security之基于HttpR
- Redis 底層數(shù)據(jù)結(jié)構(gòu)-簡單動態(tài)字符串(SD
- arthas操作spring被代理目標對象命令
- Spring中的單例模式應(yīng)用詳解
- 聊聊消息隊列,發(fā)送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠程分支