SpringBootES基本项目搭建实例
【搜索系列】ES基本项目搭建
之前一直没有写ES相关的博文,现在开始补课,预计5-6篇博文将es的使用姿势展示给各位小伙伴;本文将作为es结合springboot的第一篇博文,基本项目环境搭建 I. 项目搭建1. 项目依赖
本项目借助 SpringBoot 2.2.1.RELEASE + maven 3.5.3 + IDEA 进行开发
开一个web服务用于测试 org.elasticsearch.client elasticsearch-rest-high-level-client 2. 配置信息
配置文件application.yml,注意下面的配置信息,下面采用的是由我们自己来解析配置的方式 elasticsearch: host: localhost port: 9200 user: elastic pwd: test123 connTimeout: 3000 socketTimeout: 5000 connectionRequestTimeout: 500
说明
上面配置介绍的是一种偏基础的es文档操作姿势,相比较于封装得更好的 spring-boot-starter-data-elasticsearch ,使用更加灵活 II. SpringBoot结合ES使用1. RestHighLevelClient 初始化
接下来我们基于 RestHighLevelClient 来操作es,首先第一步就是需要初始化这实例 @Getter @Configuration public class ElasticsearchConfiguration { @Value("${elasticsearch.host}") private String host; @Value("${elasticsearch.port}") private int port; @Value("${elasticsearch.connTimeout}") private int connTimeout; @Value("${elasticsearch.socketTimeout}") private int socketTimeout; @Value("${elasticsearch.connectionRequestTimeout}") private int connectionRequestTimeout; @Value("${elasticsearch.user}") private String user; @Value("${elasticsearch.pwd}") private String pwd; @Bean(destroyMethod = "close", name = "client") public RestHighLevelClient initRestClient() { RestClientBuilder builder = RestClient.builder(new HttpHost(host, port)) .setRequestConfigCallback(requestConfigBuilder -> requestConfigBuilder .setConnectTimeout(connTimeout) .setSocketTimeout(socketTimeout) .setConnectionRequestTimeout(connectionRequestTimeout)); return new RestHighLevelClient(builder); } }
注意上面的实现,用户名 + 密码并没有使用,当es设置了用户名、密码之后,是通过每次请求时,在请求头基于Basic Auth方式进行身份验证的;后面会介绍到 2. 基本使用
我们在本机搭建了一个es用于模拟测试,在上面的配置完之后,就可以直接与es进行交互了 es安装可以参考:
•200605-Centos 安装ElasticSearch - 一灰灰Blog[1]
•210329-Elastic & Kibana安装与基本使用 - 一灰灰Blog[2]
docker安装: docker pull docker.elastic.co/elasticsearch/elasticsearch:xxx
下面是一个简单的使用姿势 @Service public class EsTest { @Autowired private RestHighLevelClient client; private static String auth; public EsTest(ElasticsearchConfiguration elasticsearchConfiguration) { auth = Base64Utils.encodeToString((elasticsearchConfiguration.getUser() + ":" + elasticsearchConfiguration.getPwd()).getBytes()); auth = "Basic " + auth; } public void testGet() throws Exception { // 文档查询 GetRequest getRequest = new GetRequest("first-index", "_doc", "gvarh3gBF9fSFsHNuO49"); RequestOptions.Builder requestOptions = RequestOptions.DEFAULT.toBuilder(); requestOptions.addHeader("Authorization", auth); GetResponse getResponse = client.get(getRequest, requestOptions.build()); if (getResponse.isExists()) { String sourceAsString = getResponse.getSourceAsString(); System.out.println(sourceAsString); } else { System.out.println("no string!"); } } }
注意上面的实现,有下面几个重要知识点
身份验证
采用Basic Auth方式进行身份校验,简单来说就是在请求头中添加一个
• key = Authorization
• value = "Basic " + base64(user + ":" + pwd)
访问姿势
上面是一个根据 id 查询文档的实例,简单可以理解为三步
•创建: XxRequest
•添加请求头: RequestOptions.Builder.addHeader
•执行: client.get(xxRequest, RequestOptions) III. 不能错过的源码和相关知识点0. 项目
•工程:https://github.com/liuyueyi/spring-boot-demo
•源码:https://github.com/liuyueyi/spring-boot-demo/tree/master/spring-boot/142-search-es 1. 微信公众号: 一灰灰Blog
尽信书则不如,以上内容,纯属一家之言,因个人能力有限,难免有疏漏和错误之处,如发现bug或者有更好的建议,欢迎批评指正,不吝感激
下面一灰灰的个人博客,记录所有学习和工作中的博文,欢迎大家前去逛逛
•一灰灰Blog个人博客 https://blog.hhui.top
•一灰灰Blog-Spring专题博客 http://spring.hhui.top References
[1] 200605-Centos 安装ElasticSearch - 一灰灰Blog: https://blog.hhui.top/hexblog/2020/06/05/200605-Centos-%E5%AE%89%E8%A3%85ElasticSearch/
[2] 210329-Elastic & Kibana安装与基本使用 - 一灰灰Blog: https://blog.hhui.top/hexblog/2021/03/29/210329-Elastic-Kibana%E5%AE%89%E8%A3%85%E4%B8%8E%E5%9F%BA%E6%9C%AC%E4%BD%BF%E7%94%A8/
iPhone13好用的便签app推荐iPhone是美国苹果公司旗下研发的智能手机,昨天的苹果2021新品发布会上,苹果公司发布了新一代的iPhone13手机。在使用iPhone13手机的时候,可以通过便签软件来记录各
手机便签怎么传送到另一个手机手机上有很多实用的辅助工具供人们挑选,其中便签软件是很多人都会用到的一种辅助工具。善用便签软件可以养成良好的随手记事的习惯,让自己的工作生活更有条理。在手机进行更换的时候,手机便签
手机上好用且简单的便签软件有哪些?手机是人们工作学习和生活中非常普遍的一种辅助工具,它之所以能够提供良好的辅助功能,要依靠各种各样功能的软件来实现。便签软件是人们常用的辅助app之一,手机上好用且简单的便签软件有哪
iphone桌面备忘录便签哪个比较好?iPhone手机是很多人都比较认可的,之所以受到这么多人的认可,是因为它的性能比较出众,而iPhone手机的性能需要各种各样的软件来体现。桌面备忘录便签软件是很多人常用的辅助工具之
求推荐一款iPhone便签记事本软件iPhone手机是很多人都比较喜欢的一款智能手机,每年的秋季,苹果公司都会发布一些新的产品,比如新款iPhone等。在使用iPhone手机的时候,可以通过便签记事本软件来记录各种工
手机桌面备忘录便签提醒能设置提醒的便签手机是人们工作和生活中常用的辅助工具,它之所以能够很好的辅助人们的方方面面,全都要依靠各种各样的软件app来实现。备忘录便签软件是人们工作和生活中的好助手,有什么能设置提醒的手机桌
iPhone手机便签提醒铃声怎么弄?iPhone手机是很多人都比较喜欢的一种智能电子设备,在使用iPhone手机的时候,可以使用自带的或者第三方便签类软件记录各种待办事项。为了提醒自己所记录的待办事项,iPhone手
iPhone手机上好用的记事便签软件iPhone是美国苹果公司所开发的智能手机,它的性能是比较好的,因此也得到了很多用户的青睐。在使用iPhone手机的时候,可以通过安装辅助工具来获取附加功能,比如通过便签软件来记录
iOS系统可以显示字数的便签软件好用的便签推荐iOS系统是美国苹果公司旗下的手机操作系统,平时大家比较熟悉的iPhone手机上所搭载的就是iOS系统。在使用iOS系统手机的时候,可以通过便签软件来记录工作和生活中的各种事情,也
2021国庆节活动方案便签保存方案更有利于实行2021年的国庆节马上就要到了,很多商家都已经开始着手准备国庆节的相关活动了。在一些节日中做促销活动,的确是吸引客户增加销售业绩的一个好办法,为了能够更好的实行2021国庆节活动方
办公时防止遗忘的好方法有哪些?用便签防止遗忘重要事项人们在办公的过程中,经常会遇到各种各样的事情,当自己所需要处理的事情比较多的情况下,如果没有仔细记录那么就很有可能会遗忘掉其中的某些事情。办公时防止遗忘的好方法有哪些?用便签防止遗
微信证件照小程序功能,标准证件照小程序怎么弄?微信小程序自上线以来,已经有5年多时间了,很多人通过微信小程序来进行交易转化,而且微信小程序变现方式也很多,小程序广告费这块就是一笔不菲的收入。如微信证件照小程序,由于大家都需要上
有没有那种好一点的浏览器,功能强大并且没有广告?目前我在IOS平台主要使用的浏览器就是AlooK,优点就是无推送无新闻和无广告23MB,毫秒级启动音视频悬浮,2倍速(支持0。32。0),跳过广告,分享链接,后台播放,小窗播放支持
潍柴和上柴和东方红和玉柴哪个好?建议还是选用潍柴因为潍柴发动机的原设计来自奥地利的斯太尔公司,是一项非常成熟的技术,其整体质量水平是不错的。1优点潍柴发动机的底盘结构,大大方便了维修,减轻了工作量,曲轴材质为高强
彭博社MarkGurman别对iOS16有太多期待Apple正式宣布WWDC2022活动时间在2022年6月6日开始,活动将维持五天,内容为发表iOSiPadOSmacOSwatchOS和tvOS的最新创新技术。根据彭博社Mark
海王星越来越冷寒冷而遥远的海王星是我们太阳系最外层的行星,它正在增加它作为一个神秘世界的声誉,在过去的二十年里,天文学家对其大气温度的惊人下降感到困惑。着眼于海王星的平流层大气在湍流天气层上方相
无人出租车遭警察截停后自行逃逸了,警察?转载文章不代表本站观点。本文来自微信公众号硅星人(guixingren123)作者光谱杜晨一条和无人车有关的视频,最近让旧金山的居民们大为震撼。视频显示,一辆通用汽车旗下自动驾驶公
奥密克戎到底能存活多久?日本有一项研究,测试了不同类型的新冠毒株。常温下在塑料表面的平均存活时间。结果分别是原始株56小时德尔塔株114小时奥密克戎株193。5小时。也就是说,奥密克戎竟然可以在塑料表面存
连续几年走下坡路的联通,能否凭借全民优打扳回一局?在以前提起三大运营商,相信许多人都会认为中国移动是三大运营商之中的大哥,而中国联通是二弟,一直以来凭借流量便宜的优点吸引了不少用户,而电信则是用的人比较少,常年默默无闻,排在了最后
RedmiK50Pro首发评测真旗舰全民化的开端前言Redmi的全新真旗舰,注定要带来改变众所周知,如今对于的智能手机行业来说,旗舰这个词早已被滥用。一方面,基本上只要是性能达到当时行业高端水准的产品,往往都会被冠以旗舰之名。另
三大运营商迎来洗牌迹象,全民优打能否再接再厉?你现在手机里插的是哪一家通信运营商的手机卡?相信多数的朋友都是移动的比较多,而剩下的就是联通和电信为主。毕竟一直以来,国内的通信市场都被三大运营商所垄断,国内的手机用户并没有过多的
腾讯向所有人免费送出QQ音乐豪华绿钻和全民K歌VIP各7天IT之家3月15日消息,深圳目前疫情防控形势严峻,13日起停止一切非必要流动活动,企业开启居家办公。腾讯视频昨日宣布,深圳地区用户可免费领取7天的VIP会员。现在,QQ音乐和全民K