找设计方案的网站,高端网站建设公司哪家更专业,精品课程网站开发环境,怎么建设个网站服务器操作系统版本#xff1a;Ubuntu 24.04
Java版本#xff1a;21
Spring Boot版本#xff1a;3.3.5
如果打算用GUI#xff0c;虚拟机安装Ubuntu 24.04#xff0c;见
虚拟机安装Ubuntu 24.04及其常用软件(2024.7)_ubuntu24.04-CSDN博客文章浏览阅读6.6k次#xff0…服务器操作系统版本Ubuntu 24.04
Java版本21
Spring Boot版本3.3.5
如果打算用GUI虚拟机安装Ubuntu 24.04见
虚拟机安装Ubuntu 24.04及其常用软件(2024.7)_ubuntu24.04-CSDN博客文章浏览阅读6.6k次点赞37次收藏100次。虚拟机安装Ubuntu 24.04及其常用软件(2024.7)_ubuntu24.04https://blog.csdn.net/weixin_42173947/article/details/140335522 如果打算用纯命令行见
虚拟机安装Ubuntu 24.04服务器版(命令行版)_ubuntu24.04 download-CSDN博客文章浏览阅读1k次点赞19次收藏13次。这个是专门用于服务器使用的没有GUI常用软件安装见虚拟机安装Ubuntu 24.04及其常用软件(2024.7)_ubuntu24.04-CSDN博客这里只记录独特的安装步骤。_ubuntu24.04 downloadhttps://blog.csdn.net/weixin_42173947/article/details/143747375
1 Ubuntu上部署ElasticSearch
准备一台服务器IP是192.168.100.200
1.1 安装JDK8
首先需要部署JDK8这里我使用了JDK8
sudo apt-get install -y openjdk-8-jdk;
1.2 下载ElasticSearch
mkdir -p /home/user/softwares;
cd /home/user/softwares;
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-8.16.1-linux-x86_64.tar.gz;
1.3 解压改文件夹名
tar -zxvf elasticsearch-8.16.1-linux-x86_64.tar.gz;
mv elasticsearch-8.16.1 elasticsearch;
1.4 修改参数减少内存消耗量
vim /home/user/softwares/elasticsearch/config/jvm.options; -Xms1g
-Xmx1g
vim /home/user/softwares/elasticsearch/config/elasticsearch.yml;
node.name: node-1 #配置当前es节点名称默认是被注释的并且默认有一个节点名
cluster.name: my-application #默认是被注释的并且默认有一个集群名
path.data: /home/user/elasticsearch/data # 数据目录位置
path.logs: /home/user/elasticsearch/logs # 日志目录位置
network.host: 0.0.0.0 #绑定的ip默认只允许本机访问修改为0.0.0.0后则可以远程访问cluster.initial_master_nodes: [node-1, node-2] #默认是被注释的 设置master节点列表 用逗号分隔
xpack.security.enabled: false
xpack.security.http.ssl:enabled: false
xpack.security.transport.ssl:enabled: false
mkdir -p /home/user/elasticsearch/data;
mkdir -p /home/user/elasticsearch/logs;
1.5 启动
cd /home/user/softwares/elasticsearch/bin;
nohup ./elasticsearch
1.6 宿主机访问
http://192.168.100.200:9200/
{name: node-1,cluster_name: my-application,cluster_uuid: GFf-TSlmQkuV_aceGLv--A,version: {number: 8.16.1,build_flavor: default,build_type: tar,build_hash: ffe992aa682c1968b5df375b5095b3a21f122bf3,build_date: 2024-11-19T16:00:31.793213192Z,build_snapshot: false,lucene_version: 9.12.0,minimum_wire_compatibility_version: 7.17.0,minimum_index_compatibility_version: 7.0.0},tagline: You Know, for Search
}
2 Java连接ElasticSearch环境搭建 2.2 父节点pom.xml
?xml version1.0 encodingUTF-8?
project xmlnshttp://maven.apache.org/POM/4.0.0xmlns:xsihttp://www.w3.org/2001/XMLSchema-instancexsi:schemaLocationhttp://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsdmodelVersion4.0.0/modelVersiongroupIdcom.sliverbullet/groupIdartifactIdjdk21-maven-test/artifactIdpackagingpom/packagingversion1.0/versionpropertiesmaven.compiler.source21/maven.compiler.sourcemaven.compiler.target21/maven.compiler.targetproject.build.sourceEncodingUTF-8/project.build.sourceEncodingjava.version21/java.versionspring-boot.version3.3.5/spring-boot.version/propertiesmodulesmodulespringboot3-test/modulemodulerocketmq-test/modulemoduleelasticsearch-test/module/modulesrepositoriesrepositoryidpublic/idnamealiyun nexus/nameurlhttps://maven.aliyun.com/repository/public/urlreleasesenabledtrue/enabled/releases/repository/repositoriespluginRepositoriespluginRepositoryidpublic/idnamealiyun nexus/nameurlhttps://maven.aliyun.com/repository/public/urlreleasesenabledtrue/enabled/releasessnapshotsenabledfalse/enabled/snapshots/pluginRepository/pluginRepositories
/project
2.3 子节点xml
project xmlnshttp://maven.apache.org/POM/4.0.0 xmlns:xsihttp://www.w3.org/2001/XMLSchema-instancexsi:schemaLocationhttp://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsdmodelVersion4.0.0/modelVersionparentgroupIdcom.sliverbullet/groupIdartifactIdjdk21-maven-test/artifactIdversion1.0/version/parentartifactIdelasticsearch-test/artifactIdpropertiesmaven.compiler.source21/maven.compiler.sourcemaven.compiler.target21/maven.compiler.targetproject.build.sourceEncodingUTF-8/project.build.sourceEncodingjava.version21/java.versionspring-boot.version3.3.5/spring-boot.versionfastjson2-version2.0.53/fastjson2-versionlombok-version1.18.34/lombok-versionelasticsearch-spring-boot-starter-version3.4.0/elasticsearch-spring-boot-starter-versionhutool-version4.6.8/hutool-version/propertiesdependenciesdependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-web/artifactIdversion${spring-boot.version}/version/dependencydependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-test/artifactIdversion${spring-boot.version}/version/dependencydependencygroupIdcom.alibaba.fastjson2/groupIdartifactIdfastjson2/artifactIdversion${fastjson2-version}/version/dependencydependencygroupIdorg.projectlombok/groupIdartifactIdlombok/artifactIdversion${lombok-version}/version/dependencydependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-data-elasticsearch/artifactIdversion${elasticsearch-spring-boot-starter-version}/version/dependencydependencygroupIdcn.hutool/groupIdartifactIdhutool-all/artifactIdversion${hutool-version}/version/dependency/dependencies/project3 ElasticSearch基本配置
3.2 application.yml的配置
server:port: 8003
spring:application:name: elasticsearch-testprofiles:active: dev
machine-no: 1
3.3 application-dev.yml的配置
testprod自行配置
spring:elasticsearch:uris: http://192.168.100.200:9200
logging:file:path: D:/log/SpringBoot3-Testname: ${logging.file.path}/test.log
4 基本测试
4.1 基本插入
实体类
package com.sliverbullet.bean;import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonProperty;
import org.springframework.data.annotation.Id;
import org.springframework.data.elasticsearch.annotations.DateFormat;
import org.springframework.data.elasticsearch.annotations.Document;
import org.springframework.data.elasticsearch.annotations.Field;import java.math.BigDecimal;
import java.util.Date;Document(indexName employee_info)
public class EmployeeInfo {Idprivate Long id;/*** 工号*/Field(name job_no)JsonProperty(job_no)private String jobNo;/*** 姓名*/Field(name name)private String name;/*** 英文名*/Field(name english_name)JsonProperty(english_name)private String englishName;/*** 工作岗位*/private String job;/*** 性别*/private Integer sex;/*** 年龄*/private Integer age;/*** 薪资*/private BigDecimal salary;/*** 入职时间*/JsonFormat(pattern yyyy-MM-dd HH:mm:ss.SSS, timezone GMT08:00)Field(name job_day)JsonProperty(job_day)private Date jobDay;/*** 备注*/private String remark;public Long getId() {return id;}public void setId(Long id) {this.id id;}public String getJobNo() {return jobNo;}public void setJobNo(String jobNo) {this.jobNo jobNo;}public String getName() {return name;}public void setName(String name) {this.name name;}public String getEnglishName() {return englishName;}public void setEnglishName(String englishName) {this.englishName englishName;}public String getJob() {return job;}public void setJob(String job) {this.job job;}public Integer getSex() {return sex;}public void setSex(Integer sex) {this.sex sex;}public Integer getAge() {return age;}public void setAge(Integer age) {this.age age;}public BigDecimal getSalary() {return salary;}public void setSalary(BigDecimal salary) {this.salary salary;}public Date getJobDay() {return jobDay;}public void setJobDay(Date jobDay) {this.jobDay jobDay;}public String getRemark() {return remark;}public void setRemark(String remark) {this.remark remark;}public EmployeeInfo() {}public EmployeeInfo(Long id, String jobNo, String name, String englishName, String job, Integer sex, Integer age, BigDecimal salary, Date jobDay, String remark) {this.id id;this.jobNo jobNo;this.name name;this.englishName englishName;this.job job;this.sex sex;this.age age;this.salary salary;this.jobDay jobDay;this.remark remark;}Overridepublic String toString() {return EmployeeInfo{ id id , jobNo jobNo \ , name name \ , englishName englishName \ , job job \ , sex sex , age age , salary salary , jobDay jobDay , remark remark \ };}
}实体类实现接口
package com.sliverbullet.repository;import com.sliverbullet.bean.EmployeeInfo;
import org.springframework.data.elasticsearch.repository.ElasticsearchRepository;public interface EmployeeInfoRepository extends ElasticsearchRepositoryEmployeeInfo, Long {}
Controller层 Resourceprivate EmployeeInfoRepository elasticRepository;RequestMapping(/save)public String save(RequestBody EmployeeInfo param) {DateTimeFormatter dateTimeFormatter DateTimeFormatter.ofPattern(yyyy-MM-dd HH:mm:ss.SSSSSSSSS);LocalDateTime localDateTime LocalDateTime.now();String formattedDate dateTimeFormatter.format(localDateTime);log.info(【SpringBoot3测试】-【ElasticSearch测试】{}, formattedDate);EmployeeInfo employeeInfo new EmployeeInfo(param.getId(), param.getJobNo(), param.getName(), param.getEnglishName(), param.getJob(), param.getSex(), param.getAge(), param.getSalary(), param.getJobDay(), param.getRemark());EmployeeInfo result elasticRepository.save(employeeInfo);log.info(【ElasticSearch测试】-【插入结果】{}, JSONObject.toJSONString(result));return JSONObject.toJSONString(result);}
测试 /*** 基本插入** return void*/Testpublic void save() {String url http://127.0.0.1:8003/save;JSONObject request new JSONObject();request.put(id, 6001L);request.put(job_no, 2001);request.put(name, 张三);request.put(english_name, zhangsan);request.put(job, Java);request.put(sex, 1);request.put(age, 21);request.put(salary, new BigDecimal(10000.00));request.put(job_day, new Date());request.put(remark, request.toJSONString());String resp HttpUtil.post(url, JSONObject.toJSONString(request));log.info(基本同步消息请求结果{}, resp);}
11:24:04.114 [main] INFO ElasticSearchTest -- 基本同步消息请求结果{age:21,english_name:ZhangSan,id:6001,job:Java,job_day:2024-12-05 11:24:03.857,job_no:2001,name:张三,remark:remark,salary:10000.00,sex:1}
2024-12-05T11:24:03.99808:00 INFO 31564 --- [elasticsearch-test] [nio-8003-exec-7] c.s.controller.ElasticSearchController : 【SpringBoot3测试】-【ElasticSearch测试】2024-12-05 11:24:03.998820800
2024-12-05T11:24:04.09308:00 INFO 31564 --- [elasticsearch-test] [nio-8003-exec-7] c.s.controller.ElasticSearchController : 【ElasticSearch测试】-【插入结果】{age:21,english_name:ZhangSan,id:6001,job:Java,job_day:2024-12-05 11:24:03.857,job_no:2001,name:张三,remark:remark,salary:10000.00,sex:1}4.2 ID查询
Controller层 Resourceprivate EmployeeInfoRepository elasticRepository;RequestMapping(/find)public String find(RequestBody EmployeeInfo param) {DateTimeFormatter dateTimeFormatter DateTimeFormatter.ofPattern(yyyy-MM-dd HH:mm:ss.SSSSSSSSS);LocalDateTime localDateTime LocalDateTime.now();String formattedDate dateTimeFormatter.format(localDateTime);log.info(【SpringBoot3测试】-【ElasticSearch测试】{}, formattedDate);OptionalEmployeeInfo employeeInfo elasticRepository.findById(param.getId());log.info(【ElasticSearch测试】-【单条查询结果】{}, JSONObject.toJSONString(employeeInfo));return JSONObject.toJSONString(employeeInfo);}
测试 /*** 基本查询** return void*/Testpublic void find() {String url http://127.0.0.1:8003/find;JSONObject request new JSONObject();request.put(id, 6001L);String resp HttpUtil.post(url, JSONObject.toJSONString(request));log.info(基本同步查询请求结果{}, resp);}
11:25:09.248 [main] INFO ElasticSearchTest -- 基本同步查询请求结果{age:21,english_name:ZhangSan,id:6001,job:Java,job_day:2024-12-05 11:24:03.857,job_no:2001,name:张三,remark:remark,salary:10000.0,sex:1}
2024-12-05T11:25:09.22308:00 INFO 31564 --- [elasticsearch-test] [nio-8003-exec-5] c.s.controller.ElasticSearchController : 【SpringBoot3测试】-【ElasticSearch测试】2024-12-05 11:25:09.223267400
2024-12-05T11:25:09.23408:00 INFO 31564 --- [elasticsearch-test] [nio-8003-exec-5] c.s.controller.ElasticSearchController : 【ElasticSearch测试】-【单条查询结果】{age:21,english_name:ZhangSan,id:6001,job:Java,job_day:2024-12-05 11:24:03.857,job_no:2001,name:张三,remark:remark,salary:10000.0,sex:1}4.3 ID修改
其实修改和插入是一个接口
测试 /*** 基本插入** return void*/Testpublic void save() {String url http://127.0.0.1:8003/save;JSONObject request new JSONObject();request.put(id, 6001L);request.put(job_no, 2001);request.put(name, 李四);request.put(english_name, LiSi);request.put(job, Java);request.put(sex, 1);request.put(age, 21);request.put(salary, new BigDecimal(12000.00));request.put(job_day, new Date());request.put(remark, remark);String resp HttpUtil.post(url, JSONObject.toJSONString(request));log.info(基本同步消息请求结果{}, resp);}
11:46:45.086 [main] INFO ElasticSearchTest -- 基本同步消息请求结果{age:21,english_name:LiSi,id:6001,job:Java,job_day:2024-12-05 11:46:44.908,job_no:2001,name:李四,remark:remark,salary:12000.00,sex:1}
2024-12-05T11:46:45.03908:00 INFO 31564 --- [elasticsearch-test] [nio-8003-exec-9] c.s.controller.ElasticSearchController : 【SpringBoot3测试】-【ElasticSearch测试】2024-12-05 11:46:45.039450500
2024-12-05T11:46:45.07308:00 INFO 31564 --- [elasticsearch-test] [nio-8003-exec-9] c.s.controller.ElasticSearchController : 【ElasticSearch测试】-【插入结果】{age:21,english_name:LiSi,id:6001,job:Java,job_day:2024-12-05 11:46:44.908,job_no:2001,name:李四,remark:remark,salary:12000.00,sex:1}查询
11:47:47.040 [main] INFO ElasticSearchTest -- 基本同步查询请求结果{age:21,english_name:LiSi,id:6001,job:Java,job_day:2024-12-05 11:46:44.908,job_no:2001,name:李四,remark:remark,salary:12000.0,sex:1}
2024-12-05T11:47:47.02208:00 INFO 31564 --- [elasticsearch-test] [nio-8003-exec-1] c.s.controller.ElasticSearchController : 【SpringBoot3测试】-【ElasticSearch测试】2024-12-05 11:47:47.022578700
2024-12-05T11:47:47.02708:00 INFO 31564 --- [elasticsearch-test] [nio-8003-exec-1] c.s.controller.ElasticSearchController : 【ElasticSearch测试】-【单条查询结果】{age:21,english_name:LiSi,id:6001,job:Java,job_day:2024-12-05 11:46:44.908,job_no:2001,name:李四,remark:remark,salary:12000.0,sex:1}4.4 ID删除
Controller层 Resourceprivate EmployeeInfoRepository elasticRepository;RequestMapping(/delete)public String delete(RequestBody EmployeeInfo param) {DateTimeFormatter dateTimeFormatter DateTimeFormatter.ofPattern(yyyy-MM-dd HH:mm:ss.SSSSSSSSS);LocalDateTime localDateTime LocalDateTime.now();String formattedDate dateTimeFormatter.format(localDateTime);log.info(【SpringBoot3测试】-【ElasticSearch测试】{}, formattedDate);elasticRepository.deleteById(param.getId());JSONObject result new JSONObject();result.put(msg, success);log.info(【ElasticSearch测试】-【单条删除结果】{}, result.toJSONString());return result.toJSONString();}
测试 /*** 基本删除** return void*/Testpublic void delete() {String url http://127.0.0.1:8003/delete;JSONObject request new JSONObject();request.put(id, 6001L);String resp HttpUtil.post(url, JSONObject.toJSONString(request));log.info(基本删除请求结果{}, resp);}
11:53:49.456 [main] INFO ElasticSearchTest -- 基本删除请求结果{msg:success}
2024-12-05T11:53:49.20608:00 INFO 49360 --- [elasticsearch-test] [nio-8003-exec-1] c.s.controller.ElasticSearchController : 【SpringBoot3测试】-【ElasticSearch测试】2024-12-05 11:53:49.206563800
2024-12-05T11:53:49.43808:00 INFO 49360 --- [elasticsearch-test] [nio-8003-exec-1] c.s.controller.ElasticSearchController : 【ElasticSearch测试】-【单条删除结果】{msg:success}查询
11:54:56.173 [main] INFO ElasticSearchTest -- 基本同步查询请求结果null
2024-12-05T11:54:56.13908:00 INFO 49360 --- [elasticsearch-test] [nio-8003-exec-3] c.s.controller.ElasticSearchController : 【SpringBoot3测试】-【ElasticSearch测试】2024-12-05 11:54:56.139854100
2024-12-05T11:54:56.16008:00 INFO 49360 --- [elasticsearch-test] [nio-8003-exec-3] c.s.controller.ElasticSearchController : 【ElasticSearch测试】-【单条查询结果】null4.5 批量插入
Controller层 Resourceprivate EmployeeInfoRepository elasticRepository;RequestMapping(/saveBatch)public String saveBatch(RequestBody ListEmployeeInfo param) {DateTimeFormatter dateTimeFormatter DateTimeFormatter.ofPattern(yyyy-MM-dd HH:mm:ss.SSSSSSSSS);LocalDateTime localDateTime LocalDateTime.now();String formattedDate dateTimeFormatter.format(localDateTime);log.info(【SpringBoot3测试】-【ElasticSearch测试】{}, formattedDate);IterableEmployeeInfo result elasticRepository.saveAll(param);log.info(【ElasticSearch测试】-【批量插入结果】{}, JSONObject.toJSONString(result));return JSONObject.toJSONString(result);}
测试 /*** 批量插入** return void*/Testpublic void saveBatch() {String url http://127.0.0.1:8003/saveBatch;ListJSONObject list new ArrayList();JSONObject request new JSONObject();request.put(id, 6002L);request.put(job_no, 2001);request.put(name, 刘二);request.put(english_name, LiuEr);request.put(job, Java);request.put(sex, 1);request.put(age, 21);request.put(salary, new BigDecimal(12000.00));request.put(job_day, new Date());request.put(remark, remark);list.add(request);request new JSONObject();request.put(id, 6003L);request.put(job_no, 2002);request.put(name, 王五);request.put(english_name, WangWu);request.put(job, Python);request.put(sex, 2);request.put(age, 25);request.put(salary, new BigDecimal(11000.00));request.put(job_day, new Date());request.put(remark, remark);list.add(request);String resp HttpUtil.post(url, JSONObject.toJSONString(list));log.info(批量插入请求结果{}, resp);}
14:32:22.660 [main] INFO ElasticSearchTest -- 批量插入请求结果[{age:21,english_name:LiuEr,id:6002,job:Java,job_day:2024-12-05 14:32:10.014,job_no:2001,name:刘二,remark:remark,salary:12000.00,sex:1},{age:25,english_name:WangWu,id:6003,job:Python,job_day:2024-12-05 14:32:10.014,job_no:2002,name:王五,remark:remark,salary:11000.00,sex:2}]
2024-12-05T14:32:22.44008:00 INFO 50596 --- [elasticsearch-test] [nio-8003-exec-4] c.s.controller.ElasticSearchController : 【SpringBoot3测试】-【ElasticSearch测试】2024-12-05 14:32:22.440133900
2024-12-05T14:32:22.64308:00 INFO 50596 --- [elasticsearch-test] [nio-8003-exec-4] c.s.controller.ElasticSearchController : 【ElasticSearch测试】-【批量插入结果】[{age:21,english_name:LiuEr,id:6002,job:Java,job_day:2024-12-05 14:32:10.014,job_no:2001,name:刘二,remark:remark,salary:12000.00,sex:1},{age:25,english_name:WangWu,id:6003,job:Python,job_day:2024-12-05 14:32:10.014,job_no:2002,name:王五,remark:remark,salary:11000.00,sex:2}]4.6 全量查询
Controller层 Resourceprivate EmployeeInfoRepository elasticRepository;RequestMapping(/findAll)public String findAll(RequestBody EmployeeInfo param) {DateTimeFormatter dateTimeFormatter DateTimeFormatter.ofPattern(yyyy-MM-dd HH:mm:ss.SSSSSSSSS);LocalDateTime localDateTime LocalDateTime.now();String formattedDate dateTimeFormatter.format(localDateTime);log.info(【SpringBoot3测试】-【ElasticSearch测试】{}, formattedDate);IterableEmployeeInfo result elasticRepository.findAll();log.info(【ElasticSearch测试】-【全量查询结果】{}, JSONObject.toJSONString(result));return JSONObject.toJSONString(result);}测试 /*** 全量查询** return void*/Testpublic void findAll() {String url http://127.0.0.1:8003/findAll;JSONObject request new JSONObject();String resp HttpUtil.post(url, JSONObject.toJSONString(request));log.info(全量查询请求结果{}, resp);}
14:43:12.007 [main] INFO ElasticSearchTest -- 全量查询请求结果{content:[{age:21,english_name:LiuEr,id:6002,job:Java,job_day:2024-12-05 14:32:10.014,job_no:2001,name:刘二,remark:remark,salary:12000.0,sex:1},{age:25,english_name:WangWu,id:6003,job:Python,job_day:2024-12-05 14:32:10.014,job_no:2002,name:王五,remark:remark,salary:11000.0,sex:2}],empty:false,first:true,last:true,number:0,numberOfElements:2,pageable:{offset:0,pageNumber:0,pageSize:2,paged:true,sort:{empty:true,sorted:false,unsorted:true},unpaged:false},size:2,sort:{empty:true,sorted:false,unsorted:true},totalElements:2,totalPages:1}
2024-12-05T14:43:11.41808:00 INFO 16640 --- [elasticsearch-test] [nio-8003-exec-1] c.s.controller.ElasticSearchController : 【SpringBoot3测试】-【ElasticSearch测试】2024-12-05 14:43:11.418807900
2024-12-05T14:43:11.98908:00 INFO 16640 --- [elasticsearch-test] [nio-8003-exec-1] c.s.controller.ElasticSearchController : 【ElasticSearch测试】-【全量查询结果】{content:[{age:21,english_name:LiuEr,id:6002,job:Java,job_day:2024-12-05 14:32:10.014,job_no:2001,name:刘二,remark:remark,salary:12000.0,sex:1},{age:25,english_name:WangWu,id:6003,job:Python,job_day:2024-12-05 14:32:10.014,job_no:2002,name:王五,remark:remark,salary:11000.0,sex:2}],empty:false,first:true,last:true,number:0,numberOfElements:2,pageable:{offset:0,pageNumber:0,pageSize:2,paged:true,sort:{empty:true,sorted:false,unsorted:true},unpaged:false},size:2,sort:{empty:true,sorted:false,unsorted:true},totalElements:2,totalPages:1}4.6 分页排序查询
也有单独的按Sort查全部
Controller层 Resourceprivate EmployeeInfoRepository elasticRepository;RequestMapping(/findAllWithPage)public String findAllWithPage(RequestBody JSONObject param) {Pageable page PageRequest.of(param.getIntValue(pageNum), param.getIntValue(pageSize), Sort.by(param.getString(sort)).ascending());DateTimeFormatter dateTimeFormatter DateTimeFormatter.ofPattern(yyyy-MM-dd HH:mm:ss.SSSSSSSSS);LocalDateTime localDateTime LocalDateTime.now();String formattedDate dateTimeFormatter.format(localDateTime);log.info(【SpringBoot3测试】-【ElasticSearch测试】{}, formattedDate);IterableEmployeeInfo result elasticRepository.findAll(page);log.info(【ElasticSearch测试】-【ascending查询结果】{}, JSONObject.toJSONString(result));page PageRequest.of(param.getIntValue(pageNum), param.getIntValue(pageSize), Sort.by(param.getString(sort)).descending());result elasticRepository.findAll(page);log.info(【ElasticSearch测试】-【descending查询结果】{}, JSONObject.toJSONString(result));return JSONObject.toJSONString(result);}
测试 /*** 分页排序查询** return void*/Testpublic void findAllWithPage() {String url http://127.0.0.1:8003/findAllWithPage;JSONObject request new JSONObject();request.put(pageNum, 1);request.put(pageSize, 1);request.put(sort, age);String resp HttpUtil.post(url, JSONObject.toJSONString(request));log.info(分页查询请求结果{}, resp);}
15:17:17.235 [main] INFO ElasticSearchTest -- 分页查询请求结果{content:[{age:21,english_name:LiuEr,id:6002,job:Java,job_day:2024-12-05 14:32:10.014,job_no:2001,name:刘二,remark:remark,salary:12000.0,sex:1}],empty:false,first:false,last:true,number:1,numberOfElements:1,pageable:{offset:1,pageNumber:1,pageSize:1,paged:true,sort:{empty:false,sorted:true,unsorted:false},unpaged:false},size:1,sort:{empty:false,sorted:true,unsorted:false},totalElements:2,totalPages:2}
2024-12-05T15:17:17.02308:00 INFO 48044 --- [elasticsearch-test] [nio-8003-exec-1] c.s.controller.ElasticSearchController : 【SpringBoot3测试】-【ElasticSearch测试】2024-12-05 15:17:17.023856800
2024-12-05T15:17:17.20608:00 INFO 48044 --- [elasticsearch-test] [nio-8003-exec-1] c.s.controller.ElasticSearchController : 【ElasticSearch测试】-【ascending查询结果】{content:[{age:25,english_name:WangWu,id:6003,job:Python,job_day:2024-12-05 14:32:10.014,job_no:2002,name:王五,remark:remark,salary:11000.0,sex:2}],empty:false,first:false,last:true,number:1,numberOfElements:1,pageable:{offset:1,pageNumber:1,pageSize:1,paged:true,sort:{empty:false,sorted:true,unsorted:false},unpaged:false},size:1,sort:{empty:false,sorted:true,unsorted:false},totalElements:2,totalPages:2}
2024-12-05T15:17:17.21708:00 INFO 48044 --- [elasticsearch-test] [nio-8003-exec-1] c.s.controller.ElasticSearchController : 【ElasticSearch测试】-【descending查询结果】{content:[{age:21,english_name:LiuEr,id:6002,job:Java,job_day:2024-12-05 14:32:10.014,job_no:2001,name:刘二,remark:remark,salary:12000.0,sex:1}],empty:false,first:false,last:true,number:1,numberOfElements:1,pageable:{offset:1,pageNumber:1,pageSize:1,paged:true,sort:{empty:false,sorted:true,unsorted:false},unpaged:false},size:1,sort:{empty:false,sorted:true,unsorted:false},totalElements:2,totalPages:2}4.7 根据多个ID全量查询
Controller层 Resourceprivate EmployeeInfoRepository elasticRepository;RequestMapping(/findAllById)public String findAllById(RequestBody ListLong param) {DateTimeFormatter dateTimeFormatter DateTimeFormatter.ofPattern(yyyy-MM-dd HH:mm:ss.SSSSSSSSS);LocalDateTime localDateTime LocalDateTime.now();String formattedDate dateTimeFormatter.format(localDateTime);log.info(【SpringBoot3测试】-【ElasticSearch测试】{}, formattedDate);IterableEmployeeInfo result elasticRepository.findAllById(param);log.info(【ElasticSearch测试】-【findAllById查询结果】{}, JSONObject.toJSONString(result));return JSONObject.toJSONString(result);}
测试 /*** 根据多个Id全量查询** return void*/Testpublic void findAllById() {String url http://127.0.0.1:8003/findAllById;ListLong longList new ArrayList();longList.add(6002L);longList.add(6003L);String resp HttpUtil.post(url, JSONObject.toJSONString(longList));log.info(根据多个Id全量查询{}, resp);}
15:28:08.755 [main] INFO ElasticSearchTest -- 根据多个Id全量查询[{age:21,english_name:LiuEr,id:6002,job:Java,job_day:2024-12-05 14:32:10.014,job_no:2001,name:刘二,remark:remark,salary:12000.0,sex:1},{age:25,english_name:WangWu,id:6003,job:Python,job_day:2024-12-05 14:32:10.014,job_no:2002,name:王五,remark:remark,salary:11000.0,sex:2}]
2024-12-05T15:28:01.19308:00 INFO 30624 --- [elasticsearch-test] [nio-8003-exec-1] c.s.controller.ElasticSearchController : 【SpringBoot3测试】-【ElasticSearch测试】2024-12-05 15:28:01.193874800
2024-12-05T15:28:01.40608:00 INFO 30624 --- [elasticsearch-test] [nio-8003-exec-1] c.s.controller.ElasticSearchController : 【ElasticSearch测试】-【findAllById查询结果】[{age:21,english_name:LiuEr,id:6002,job:Java,job_day:2024-12-05 14:32:10.014,job_no:2001,name:刘二,remark:remark,salary:12000.0,sex:1},{age:25,english_name:WangWu,id:6003,job:Python,job_day:2024-12-05 14:32:10.014,job_no:2002,name:王五,remark:remark,salary:11000.0,sex:2}]4.8 根据多个ID全量查询以及清空数据
Controller层 Resourceprivate EmployeeInfoRepository elasticRepository;RequestMapping(/deleteAll)public String deleteAll(RequestBody ListLong param) {DateTimeFormatter dateTimeFormatter DateTimeFormatter.ofPattern(yyyy-MM-dd HH:mm:ss.SSSSSSSSS);LocalDateTime localDateTime LocalDateTime.now();String formattedDate dateTimeFormatter.format(localDateTime);log.info(【SpringBoot3测试】-【ElasticSearch测试】{}, formattedDate);elasticRepository.deleteAllById(param);elasticRepository.deleteAll();JSONObject result new JSONObject();result.put(msg, success);log.info(【ElasticSearch测试】-【全部删除结果】{}, result.toJSONString());return JSONObject.toJSONString(result);}
deleteAllById根据多个ID删除deleteAll直接清空全部数据
测试 /*** 根据多个Id删除** return void*/Testpublic void deleteAll() {String url http://127.0.0.1:8003/deleteAll;ListLong longList new ArrayList();longList.add(6002L);longList.add(6003L);String resp HttpUtil.post(url, JSONObject.toJSONString(longList));log.info(根据多个Id全量查询{}, resp);}
16:02:47.398 [main] INFO ElasticSearchTest -- 根据多个Id全量查询{msg:success}
2024-12-05T16:02:47.19908:00 INFO 50652 --- [elasticsearch-test] [nio-8003-exec-1] c.s.controller.ElasticSearchController : 【SpringBoot3测试】-【ElasticSearch测试】2024-12-05 16:02:47.199050000
2024-12-05T16:02:47.36708:00 INFO 50652 --- [elasticsearch-test] [nio-8003-exec-1] c.s.controller.ElasticSearchController : 【ElasticSearch测试】-【全部删除结果】{msg:success}
16:16:41.993 [main] INFO ElasticSearchTest -- 全量查询请求结果{content:[],pageable:INSTANCE,last:true,totalPages:1,totalElements:0,size:0,number:0,sort:{empty:true,sorted:false,unsorted:true},numberOfElements:0,first:true,empty:true}
4.9 获取数量某个ID是否存在
Controller层 Resourceprivate EmployeeInfoRepository elasticRepository;RequestMapping(/other)public String other(RequestBody EmployeeInfo param) {DateTimeFormatter dateTimeFormatter DateTimeFormatter.ofPattern(yyyy-MM-dd HH:mm:ss.SSSSSSSSS);LocalDateTime localDateTime LocalDateTime.now();String formattedDate dateTimeFormatter.format(localDateTime);log.info(【SpringBoot3测试】-【ElasticSearch测试】{}, formattedDate);JSONObject result new JSONObject();result.put(count, elasticRepository.count());result.put(exist, elasticRepository.existsById(param.getId()));log.info(【ElasticSearch测试】-【other结果】{}, result.toJSONString());return JSONObject.toJSONString(result);}
重新插入然后测试
测试 /*** 其他** return void*/Testpublic void other() {String url http://127.0.0.1:8003/other;JSONObject request new JSONObject();request.put(id, 6002L);String resp HttpUtil.post(url, JSONObject.toJSONString(request));log.info(其他{}, resp);}
16:25:38.079 [main] INFO ElasticSearchTest -- 其他{count:2,exist:true}
2024-12-05T16:25:20.74708:00 INFO 20068 --- [elasticsearch-test] [nio-8003-exec-1] c.s.controller.ElasticSearchController : 【SpringBoot3测试】-【ElasticSearch测试】2024-12-05 16:25:20.747816800
2024-12-05T16:25:20.91508:00 INFO 20068 --- [elasticsearch-test] [nio-8003-exec-1] c.s.controller.ElasticSearchController : 【ElasticSearch测试】-【批量插入结果】[{age:21,english_name:LiuEr,id:6002,job:Java,job_day:2024-12-05 16:25:20.567,job_no:2001,name:刘二,remark:remark,salary:12000.00,sex:1},{age:25,english_name:WangWu,id:6003,job:Python,job_day:2024-12-05 16:25:20.567,job_no:2002,name:王五,remark:remark,salary:11000.00,sex:2}]
2024-12-05T16:25:37.99408:00 INFO 20068 --- [elasticsearch-test] [nio-8003-exec-3] c.s.controller.ElasticSearchController : 【SpringBoot3测试】-【ElasticSearch测试】2024-12-05 16:25:37.994253400
2024-12-05T16:25:38.06608:00 INFO 20068 --- [elasticsearch-test] [nio-8003-exec-3] c.s.controller.ElasticSearchController : 【ElasticSearch测试】-【other结果】{count:2,exist:true}