大数据ELK(十二)Elasticsearch编程(环境准备)
#头条创作挑战赛#
一、环境准备1、准备 IDEA 项目结构创建 elasticsearch_example 项目创建包结构如下所示
2、准备 POM 依赖 aliyun http://maven.aliyun.com/nexus/content/groups/public/ true false never org.elasticsearch.client elasticsearch-rest-high-level-client 7.6.1 org.apache.logging.log4j log4j-core 2.11.1 com.alibaba fastjson 1.2.62 junit junit 4.12 test org.testng testng 6.14.3 test org.apache.maven.plugins maven-compiler-plugin 3.1 1.8
3、创建用于保存职位信息的实体类
注意:
在 id 字段上添加一个 @JSONField 注解,并配置注解的 serialize 为 false,表示该字段无需转换为 JSON,因为它就是文档的唯一 ID。
参考代码:
public class JobDetail { // 因为此处无需将id序列化为文档中 @JSONField(serialize = false) private long id; // 唯一标识 private String area; // 职位所在区域 private String exp; // 岗位要求的工作经验 private String edu; // 学历要求 private String salary; // 薪资范围 private String job_type; // 职位类型(全职/兼职) private String cmp; // 公司名 private String pv; // 浏览量 private String title; // 岗位名称 private String jd; // 职位描述 public long getId() { return id; } public void setId(long id) { this.id = id; } public String getArea() { return area; } public void setArea(String area) { this.area = area; } public String getExp() { return exp; } public void setExp(String exp) { this.exp = exp; } public String getEdu() { return edu; } public void setEdu(String edu) { this.edu = edu; } public String getSalary() { return salary; } public void setSalary(String salary) { this.salary = salary; } public String getJob_type() { return job_type; } public void setJob_type(String job_type) { this.job_type = job_type; } public String getCmp() { return cmp; } public void setCmp(String cmp) { this.cmp = cmp; } public String getPv() { return pv; } public void setPv(String pv) { this.pv = pv; } public String getTitle() { return title; } public void setTitle(String title) { this.title = title; } public String getJd() { return jd; } public void setJd(String jd) { this.jd = jd; } @Override public String toString() { return "JobDetail{" + "id=" + id + ", area="" + area + """ + ", exp="" + exp + """ + ", edu="" + edu + """ + ", salary="" + salary + """ + ", job_type="" + job_type + """ + ", cmp="" + cmp + """ + ", pv="" + pv + """ + ", title="" + title + """ + ", jd="" + jd + """ + "}"; } }
4、编写接口和实现类
cn.it.elasticsearch.service 包中创建 JobFullTextService 接口,该接口中定义了职位全文检索相关的 Java API 接口。
参考代码:
/** * 定义JobFullTextService */ public interface JobFullTextService { // 添加一个职位数据 void add(JobDetail jobDetail); // 根据ID检索指定职位数据 JobDetail findById(long id) throws IOException; // 修改职位薪资 void update(JobDetail jobDetail) throws IOException; // 根据ID删除指定位置数据 void deleteById(long id) throws IOException; // 根据关键字检索数据 List searchByKeywords(String keywords) throws IOException; // 分页检索 Map searchByPage(String keywords, int pageNum, int pageSize) throws IOException; // scroll分页解决深分页问题 Map searchByScrollPage(String keywords, String scrollId, int pageSize) throws IOException; // 关闭ES连接 void close() throws IOException; ; }
5、创建实现类
在 cn.it.elasticsearch.service.impl 包下创建一个实现类:JobFullTextServiceImpl,并实现上面的接口。
参考代码:
public class JobFullTextServiceImpl implements JobFullTextService { @Override public void add(JobDetail jobDetail) { } @Override public void update(JobDetail jobDetail) { } @Override public JobDetail findById(long id) { return null; } @Override public boolean deleteById(long id) { return false; } @Override public List searchByKeywords(String keywords) { return null; } @Override public Map searchByPage(String keywords, int pageNum, int pageSize) { return null; } @Override public Map searchByScrollPage(String keywords, String scrollId, int pageSize) { return null; } }
总奖金180万美金!本月中国还有世乒联两大赛事极目新闻记者陈凌燕世乒赛还没看够?不要紧,本月还有两项世界乒联落地中国的两大赛事10月19日至23日,总奖金达80万美元的WTT冠军赛澳门站将在澳门开打,这项赛事为最顶尖的32名男
媒体深度解读追梦道歉采访,潜藏在他心底的秘密,终于浮出水面追梦格林与普尔在训练场爆发冲突三天后,终于在今天迎来了当事人之一,追梦格林的新闻发布会。在这过去的三天里,发生很多事情,冲突爆发的第一天,里奇保罗的口舌就搬弄是非,试图抹黑普尔,保
(体育)斯诺克香港世界斯诺克大师赛奥沙利文夺冠当日,在2022香港世界斯诺克大师赛决赛中,英格兰选手奥沙利文以6比4战胜中国香港选手傅家俊,获得冠军。10月9日,英格兰选手奥沙利文在颁奖仪式上向观众致意。新华社记者卢炳辉摄10
(体育)排球女排世锦赛中国队挺进八强(2)当日,在2022世界女排锦标赛16强E组复赛中,中国队以3比0战胜比利时队,晋级八强。10月9日,中国队球员袁心玥(左)在比赛后。新华社记者孟鼎博摄10月9日,中国队球员在比赛后合
英超1逆转埃弗顿升至第五北京时间10月10日凌晨2点,202223赛季英超联赛第10轮,曼联前往客场对阵埃弗顿。伊沃比开场5分钟率先帮助埃弗顿破门,安东尼扳平比分,马夏尔贡献助攻后伤退,C罗上半场替补出场
英超2利物浦仍领跑北京时间10月9日23点30分,202223赛季英超联赛第10轮的焦点战在酋长球场打响,阿森纳坐镇主场对阵利物浦。马丁内利开场闪击破门,努涅斯扳平比分,萨卡在上半场补时阶段再度帮助
梅州31广州,武卡诺维奇梅开二度,杨立瑜进球中超联赛第22轮,广州对阵梅州客家,本场比赛在广州花都体育场进行。上半场,科索维奇远射中柱,杨意林帮助梅州率先破门,武卡诺维奇扩大比分。半场战罢,广州02梅州客家。下半场,双方几次
世乒赛大冷门!马龙拿到第27个世界冠军!但意外输给对手1局10月10日,恭喜中国乒乓球国家队男团,在2022年成都乒乓球世锦赛上,我们拿到男团第10冠!对手是德国男团,具体对手是1)第一场樊振东出战一单,他以30(118118119)战胜
爱因斯坦杨振宁费曼和贝利如何解读麦克斯韦方程一组麦克斯韦方程,爱因斯坦看出光量子和狭义相对论杨振宁看出几何费曼看出波函数贝利看见量子力学,,您看出了什么?一爱因斯坦自我反叛1905年是爱因斯坦奇迹年。关于麦克斯韦方程,爱因斯
内燃机和燃油车新能源正在开启你的未来导语十二五发展期以来,参加涉及汽车工业节能减排的各种技术会议和学术会议,当时听到最怪异的声音就是内燃机将在2020年左右退出历史,进入博物馆与蒸汽机作伴。那时,人类只能在博物馆与内
全面接入鸿蒙系统!国内企业终于抱团,华为做到了作者科技绘报原创尊重原创,请勿抄袭,违者必究!早在三年前,华为破惊天地宣布了鸿蒙系统问世,那个时候,华为创始人任正非就已经明确表示,鸿蒙系统要想活下去,就必须占据16以上的市场份额