|
@@ -44,185 +44,185 @@ import java.util.concurrent.TimeUnit;
|
|
|
@SpringBootTest
|
|
|
class GhjEsApiApplicationTests {
|
|
|
|
|
|
- @Autowired
|
|
|
- @Qualifier("restHighLevelClient")
|
|
|
- private RestHighLevelClient client;
|
|
|
-
|
|
|
- // 创建索引
|
|
|
- @Test
|
|
|
- void createIndex() throws IOException {
|
|
|
- // 1.创建索引
|
|
|
- CreateIndexRequest request = new CreateIndexRequest(Constant.ES_INDEX);
|
|
|
- // 2.执行客户端请求,获取响应。
|
|
|
- CreateIndexResponse response = client.indices()
|
|
|
- .create(request, RequestOptions.DEFAULT);
|
|
|
- log.info("create index response:{}",response);
|
|
|
- }
|
|
|
-
|
|
|
- // 获取索引,判断是否存在。
|
|
|
- @Test
|
|
|
- void testEixstIndex() throws IOException {
|
|
|
- GetIndexRequest request = new GetIndexRequest(Constant.ES_INDEX);
|
|
|
- Boolean exists = client.indices().exists(request,RequestOptions.DEFAULT);
|
|
|
- log.info("index exists:{}",exists);
|
|
|
- }
|
|
|
-
|
|
|
- // 删除索引
|
|
|
- @Test
|
|
|
- void delIndex() throws IOException {
|
|
|
- DeleteIndexRequest request = new DeleteIndexRequest("table_tennis2");
|
|
|
- // 删除
|
|
|
- AcknowledgedResponse response = client.indices().delete(request,RequestOptions.DEFAULT);
|
|
|
- log.info("del reponse:{}", JSON.toJSONString(response));
|
|
|
- log.info("delete status:{}",response.isAcknowledged());
|
|
|
- }
|
|
|
-
|
|
|
- // 添加文档
|
|
|
- @Test
|
|
|
- void testAddDoc() throws IOException {
|
|
|
- // 创建对象
|
|
|
- Player player = new Player("wmy",21);
|
|
|
- // 创建请求
|
|
|
- IndexRequest request = new IndexRequest(Constant.ES_INDEX);
|
|
|
- // 规则 put /table_tennis/_doc/1
|
|
|
- request.id("1");
|
|
|
- request.timeout(TimeValue.timeValueSeconds(1));
|
|
|
- request.timeout("1s");
|
|
|
-
|
|
|
- // 将我们得数据放入请求,json
|
|
|
- request.source(JSON.toJSONString(player), XContentType.JSON);
|
|
|
-
|
|
|
- // 客户端发送请求
|
|
|
- IndexResponse response = client.index(request, RequestOptions.DEFAULT);
|
|
|
- System.err.println(response.toString());
|
|
|
- // 对应我们命令返回得状态
|
|
|
- System.err.println(response.status());
|
|
|
- }
|
|
|
-
|
|
|
- // 获取文档前,先判断是否存在
|
|
|
- @Test
|
|
|
- void testExistDoc() throws IOException {
|
|
|
- GetRequest getReq = new GetRequest(Constant.ES_INDEX, "1");
|
|
|
- // 不获取返回得_source得上下文了。
|
|
|
- getReq.fetchSourceContext(new FetchSourceContext(false));
|
|
|
- getReq.storedFields("_none_");
|
|
|
-
|
|
|
- boolean exists = client.exists(getReq, RequestOptions.DEFAULT);
|
|
|
- System.err.println(exists);
|
|
|
- }
|
|
|
-
|
|
|
- // 获取文档
|
|
|
- @Test
|
|
|
- void testGetDoc() throws IOException {
|
|
|
- GetRequest getReq = new GetRequest(Constant.ES_INDEX, "1");
|
|
|
- GetResponse getResp = client.get(getReq, RequestOptions.DEFAULT);
|
|
|
- // 打印文档得内容
|
|
|
- System.err.println(getResp.getSourceAsString());
|
|
|
- // 返回得内容和命令是一样得。
|
|
|
- System.out.println(getResp);
|
|
|
- }
|
|
|
-
|
|
|
- // 更新文档信息
|
|
|
- @Test
|
|
|
- void testUpdateDoc() throws IOException {
|
|
|
- UpdateRequest upReq = new UpdateRequest(Constant.ES_INDEX, "1");
|
|
|
- upReq.timeout("1s");
|
|
|
-
|
|
|
- Player player = new Player("wmyu",21);
|
|
|
- upReq.doc(JSON.toJSONString(player),XContentType.JSON);
|
|
|
-
|
|
|
- UpdateResponse upResp = client.update(upReq, RequestOptions.DEFAULT);
|
|
|
- System.out.println(upResp);
|
|
|
- System.out.println(upResp.status());
|
|
|
- }
|
|
|
-
|
|
|
- // 删除文档信息
|
|
|
- @Test
|
|
|
- void testDelDoc() throws IOException {
|
|
|
- DeleteRequest delReq = new DeleteRequest(Constant.ES_INDEX, "1");
|
|
|
- delReq.timeout("1s");
|
|
|
- DeleteResponse delResp = client.delete(delReq, RequestOptions.DEFAULT);
|
|
|
- System.out.println(delResp);
|
|
|
- System.out.println(delResp.status());
|
|
|
- }
|
|
|
-
|
|
|
- // 批量添加
|
|
|
- @Test
|
|
|
- void testBulkReq() throws IOException {
|
|
|
- BulkRequest bulkRequest = new BulkRequest();
|
|
|
- bulkRequest.timeout("10s");
|
|
|
-
|
|
|
- List<Player> players = new ArrayList<>();
|
|
|
- players.add(new Player("wmy",21));
|
|
|
- players.add(new Player("sys",20));
|
|
|
- players.add(new Player("cm",23));
|
|
|
- players.add(new Player("lsw",24));
|
|
|
-
|
|
|
- // 批处理请求
|
|
|
- for (int i = 0; i < players.size(); i++) {
|
|
|
- bulkRequest.add(
|
|
|
- new IndexRequest("table_tennis")
|
|
|
- .id(""+(i+1))
|
|
|
- .source(JSON.toJSONString(players.get(i)),XContentType.JSON)
|
|
|
- );
|
|
|
- }
|
|
|
- BulkResponse bulkResp = client.bulk(bulkRequest, RequestOptions.DEFAULT);
|
|
|
- System.err.println(bulkResp.hasFailures()); // 是否失败,返回false 代表成功。
|
|
|
- }
|
|
|
-
|
|
|
- // 查询
|
|
|
- // SearchRequest 搜索请求
|
|
|
- // SearchSourceBuilder 条件构造
|
|
|
- // HighlightBuilder 构建高亮
|
|
|
- // TermQueryBuilder 精确查询
|
|
|
- // MatchAllQueryBuilder 匹配所有
|
|
|
- // xxx QueryBuilder 对应我们得命令。
|
|
|
- @Test
|
|
|
- void testSearch() throws IOException {
|
|
|
- SearchRequest searchRequest = new SearchRequest(Constant.ES_INDEX);
|
|
|
- // 构建搜索条件
|
|
|
- SearchSourceBuilder searchSourceBuilder = new SearchSourceBuilder();
|
|
|
-
|
|
|
- // 查询条件,用QueryBuilders实现
|
|
|
- // QueryBuilders.termQuery 精确查找
|
|
|
- TermQueryBuilder termQueryBuilder = QueryBuilders.termQuery("name","wmy");
|
|
|
-
|
|
|
- // QueryBuilders.matchAllQuery() 匹配所有。
|
|
|
- // MatchAllQueryBuilder matchAllQueryBuilder = QueryBuilders.matchAllQuery();
|
|
|
-
|
|
|
- searchSourceBuilder.query(termQueryBuilder);
|
|
|
- searchSourceBuilder.timeout(new TimeValue(60, TimeUnit.SECONDS));
|
|
|
-
|
|
|
- searchRequest.source(searchSourceBuilder);
|
|
|
-
|
|
|
- SearchResponse searchResp = client.search(searchRequest, RequestOptions.DEFAULT);
|
|
|
- System.out.println(JSON.toJSONString(searchResp.getHits()));
|
|
|
- System.out.println("=========================================");
|
|
|
- for (SearchHit hit : searchResp.getHits()) {
|
|
|
- System.out.println(hit.getSourceAsMap());
|
|
|
- }
|
|
|
-
|
|
|
-
|
|
|
- }
|
|
|
-
|
|
|
- // 删除文档信息
|
|
|
- @Test
|
|
|
- void testDelDocByName() throws IOException {
|
|
|
- DeleteRequest delReq = new DeleteRequest("table_tennis", "1");
|
|
|
- delReq.timeout("1s");
|
|
|
-
|
|
|
- SearchRequest searchRequest = new SearchRequest(Constant.ES_INDEX);
|
|
|
- SearchSourceBuilder searchSourceBuilder = new SearchSourceBuilder();
|
|
|
- TermQueryBuilder termQueryBuilder = QueryBuilders.termQuery("name","wmy");
|
|
|
- searchSourceBuilder.query(termQueryBuilder);
|
|
|
- searchSourceBuilder.timeout(new TimeValue(60, TimeUnit.SECONDS));
|
|
|
-
|
|
|
- searchRequest.source(searchSourceBuilder);
|
|
|
-
|
|
|
- SearchResponse searchResp = client.search(searchRequest, RequestOptions.DEFAULT);
|
|
|
- DeleteResponse delResp = client.delete(delReq, RequestOptions.DEFAULT);
|
|
|
- System.out.println(delResp);
|
|
|
- System.out.println(delResp.status());
|
|
|
- }
|
|
|
+ @Autowired
|
|
|
+ @Qualifier("restHighLevelClient")
|
|
|
+ private RestHighLevelClient client;
|
|
|
+
|
|
|
+ // 创建索引
|
|
|
+ @Test
|
|
|
+ void createIndex() throws IOException {
|
|
|
+ // 1.创建索引
|
|
|
+ CreateIndexRequest request = new CreateIndexRequest(Constant.ES_INDEX);
|
|
|
+ // 2.执行客户端请求,获取响应。
|
|
|
+ CreateIndexResponse response = client.indices()
|
|
|
+ .create(request, RequestOptions.DEFAULT);
|
|
|
+ log.info("create index response:{}", response);
|
|
|
+ }
|
|
|
+
|
|
|
+ // 获取索引,判断是否存在。
|
|
|
+ @Test
|
|
|
+ void testEixstIndex() throws IOException {
|
|
|
+ GetIndexRequest request = new GetIndexRequest(Constant.ES_INDEX);
|
|
|
+ Boolean exists = client.indices().exists(request, RequestOptions.DEFAULT);
|
|
|
+ log.info("index exists:{}", exists);
|
|
|
+ }
|
|
|
+
|
|
|
+ // 删除索引
|
|
|
+ @Test
|
|
|
+ void delIndex() throws IOException {
|
|
|
+ DeleteIndexRequest request = new DeleteIndexRequest("table_tennis2");
|
|
|
+ // 删除
|
|
|
+ AcknowledgedResponse response = client.indices().delete(request, RequestOptions.DEFAULT);
|
|
|
+ log.info("del reponse:{}", JSON.toJSONString(response));
|
|
|
+ log.info("delete status:{}", response.isAcknowledged());
|
|
|
+ }
|
|
|
+
|
|
|
+ // 添加文档
|
|
|
+ @Test
|
|
|
+ void testAddDoc() throws IOException {
|
|
|
+ // 创建对象
|
|
|
+ Player player = new Player("wmy", 21);
|
|
|
+ // 创建请求
|
|
|
+ IndexRequest request = new IndexRequest(Constant.ES_INDEX);
|
|
|
+ // 规则 put /table_tennis/_doc/1
|
|
|
+ request.id("1");
|
|
|
+ request.timeout(TimeValue.timeValueSeconds(1));
|
|
|
+ request.timeout("1s");
|
|
|
+
|
|
|
+ // 将我们得数据放入请求,json
|
|
|
+ request.source(JSON.toJSONString(player), XContentType.JSON);
|
|
|
+
|
|
|
+ // 客户端发送请求
|
|
|
+ IndexResponse response = client.index(request, RequestOptions.DEFAULT);
|
|
|
+ System.err.println(response.toString());
|
|
|
+ // 对应我们命令返回得状态
|
|
|
+ System.err.println(response.status());
|
|
|
+ }
|
|
|
+
|
|
|
+ // 获取文档前,先判断是否存在
|
|
|
+ @Test
|
|
|
+ void testExistDoc() throws IOException {
|
|
|
+ GetRequest getReq = new GetRequest(Constant.ES_INDEX, "1");
|
|
|
+ // 不获取返回得_source得上下文了。
|
|
|
+ getReq.fetchSourceContext(new FetchSourceContext(false));
|
|
|
+ getReq.storedFields("_none_");
|
|
|
+
|
|
|
+ boolean exists = client.exists(getReq, RequestOptions.DEFAULT);
|
|
|
+ System.err.println(exists);
|
|
|
+ }
|
|
|
+
|
|
|
+ // 获取文档
|
|
|
+ @Test
|
|
|
+ void testGetDoc() throws IOException {
|
|
|
+ GetRequest getReq = new GetRequest(Constant.ES_INDEX, "1");
|
|
|
+ GetResponse getResp = client.get(getReq, RequestOptions.DEFAULT);
|
|
|
+ // 打印文档得内容
|
|
|
+ System.err.println(getResp.getSourceAsString());
|
|
|
+ // 返回得内容和命令是一样得。
|
|
|
+ System.out.println(getResp);
|
|
|
+ }
|
|
|
+
|
|
|
+ // 更新文档信息
|
|
|
+ @Test
|
|
|
+ void testUpdateDoc() throws IOException {
|
|
|
+ UpdateRequest upReq = new UpdateRequest(Constant.ES_INDEX, "1");
|
|
|
+ upReq.timeout("1s");
|
|
|
+
|
|
|
+ Player player = new Player("wmyu", 21);
|
|
|
+ upReq.doc(JSON.toJSONString(player), XContentType.JSON);
|
|
|
+
|
|
|
+ UpdateResponse upResp = client.update(upReq, RequestOptions.DEFAULT);
|
|
|
+ System.out.println(upResp);
|
|
|
+ System.out.println(upResp.status());
|
|
|
+ }
|
|
|
+
|
|
|
+ // 删除文档信息
|
|
|
+ @Test
|
|
|
+ void testDelDoc() throws IOException {
|
|
|
+ DeleteRequest delReq = new DeleteRequest(Constant.ES_INDEX, "1");
|
|
|
+ delReq.timeout("1s");
|
|
|
+ DeleteResponse delResp = client.delete(delReq, RequestOptions.DEFAULT);
|
|
|
+ System.out.println(delResp);
|
|
|
+ System.out.println(delResp.status());
|
|
|
+ }
|
|
|
+
|
|
|
+ // 批量添加
|
|
|
+ @Test
|
|
|
+ void testBulkReq() throws IOException {
|
|
|
+ BulkRequest bulkRequest = new BulkRequest();
|
|
|
+ bulkRequest.timeout("10s");
|
|
|
+
|
|
|
+ List<Player> players = new ArrayList<>();
|
|
|
+ players.add(new Player("wmy", 21));
|
|
|
+ players.add(new Player("sys", 20));
|
|
|
+ players.add(new Player("cm", 23));
|
|
|
+ players.add(new Player("lsw", 24));
|
|
|
+
|
|
|
+ // 批处理请求
|
|
|
+ for (int i = 0; i < players.size(); i++) {
|
|
|
+ bulkRequest.add(
|
|
|
+ new IndexRequest("table_tennis")
|
|
|
+ .id("" + (i + 1))
|
|
|
+ .source(JSON.toJSONString(players.get(i)), XContentType.JSON)
|
|
|
+ );
|
|
|
+ }
|
|
|
+ BulkResponse bulkResp = client.bulk(bulkRequest, RequestOptions.DEFAULT);
|
|
|
+ System.err.println(bulkResp.hasFailures()); // 是否失败,返回false 代表成功。
|
|
|
+ }
|
|
|
+
|
|
|
+ // 查询
|
|
|
+ // SearchRequest 搜索请求
|
|
|
+ // SearchSourceBuilder 条件构造
|
|
|
+ // HighlightBuilder 构建高亮
|
|
|
+ // TermQueryBuilder 精确查询
|
|
|
+ // MatchAllQueryBuilder 匹配所有
|
|
|
+ // xxx QueryBuilder 对应我们得命令。
|
|
|
+ @Test
|
|
|
+ void testSearch() throws IOException {
|
|
|
+ SearchRequest searchRequest = new SearchRequest(Constant.ES_INDEX);
|
|
|
+ // 构建搜索条件
|
|
|
+ SearchSourceBuilder searchSourceBuilder = new SearchSourceBuilder();
|
|
|
+
|
|
|
+ // 查询条件,用QueryBuilders实现
|
|
|
+ // QueryBuilders.termQuery 精确查找
|
|
|
+ TermQueryBuilder termQueryBuilder = QueryBuilders.termQuery("name", "wmy");
|
|
|
+
|
|
|
+ // QueryBuilders.matchAllQuery() 匹配所有。
|
|
|
+ // MatchAllQueryBuilder matchAllQueryBuilder = QueryBuilders.matchAllQuery();
|
|
|
+
|
|
|
+ searchSourceBuilder.query(termQueryBuilder);
|
|
|
+ searchSourceBuilder.timeout(new TimeValue(60, TimeUnit.SECONDS));
|
|
|
+
|
|
|
+ searchRequest.source(searchSourceBuilder);
|
|
|
+
|
|
|
+ SearchResponse searchResp = client.search(searchRequest, RequestOptions.DEFAULT);
|
|
|
+ System.out.println(JSON.toJSONString(searchResp.getHits()));
|
|
|
+ System.out.println("=========================================");
|
|
|
+ for (SearchHit hit : searchResp.getHits()) {
|
|
|
+ System.out.println(hit.getSourceAsMap());
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ // 删除文档信息
|
|
|
+ @Test
|
|
|
+ void testDelDocByName() throws IOException {
|
|
|
+ DeleteRequest delReq = new DeleteRequest("table_tennis", "1");
|
|
|
+ delReq.timeout("1s");
|
|
|
+
|
|
|
+ SearchRequest searchRequest = new SearchRequest(Constant.ES_INDEX);
|
|
|
+ SearchSourceBuilder searchSourceBuilder = new SearchSourceBuilder();
|
|
|
+ TermQueryBuilder termQueryBuilder = QueryBuilders.termQuery("name", "wmy");
|
|
|
+ searchSourceBuilder.query(termQueryBuilder);
|
|
|
+ searchSourceBuilder.timeout(new TimeValue(60, TimeUnit.SECONDS));
|
|
|
+
|
|
|
+ searchRequest.source(searchSourceBuilder);
|
|
|
+
|
|
|
+ SearchResponse searchResp = client.search(searchRequest, RequestOptions.DEFAULT);
|
|
|
+ DeleteResponse delResp = client.delete(delReq, RequestOptions.DEFAULT);
|
|
|
+ System.out.println(delResp);
|
|
|
+ System.out.println(delResp.status());
|
|
|
+ }
|
|
|
|
|
|
}
|