ES7.x客户端的认证创建一步一步来
前言
好久没来写博客了,还是简单的记录一下吧。今天要写的是es在7.x版本后的客户端的创建以及一些es的查询所语句到的小问题。直接先吧客户端端的代码呈上。
正文
public class ESClientUtils {
private ESClientUtils() {
}
private static volatile RestHighLevelClient client = null;
public static RestHighLevelClient getClient() {
try {
if (client == null) {
synchronized (ESClientUtils.class) {
if (client == null) {
final CredentialsProvider credentialsProvider =
new BasicCredentialsProvider();
credentialsProvider.setCredentials(AuthScope.ANY, new UsernamePasswordCredentials(YamlTool.getInstance().getInfo("es.prod.name", "cluster-address.yml"), YamlTool.getInstance().getInfo("es.prod.password", "cluster-address.yml")));
RestClientBuilder restClientBuilder = RestClient.builder(
new HttpHost(YamlTool.getInstance().getInfo("es.prod.hostName", "cluster-address.yml").split(",")[0], Integer.parseInt(YamlTool.getInstance().getInfo("es.prod.port", "cluster-address.yml"))),
new HttpHost(YamlTool.getInstance().getInfo("es.prod.hostName", "cluster-address.yml").split(",")[1], Integer.parseInt(YamlTool.getInstance().getInfo("es.prod.port", "cluster-address.yml"))),
new HttpHost(YamlTool.getInstance().getInfo("es.prod.hostName", "cluster-address.yml").split(",")[2], Integer.parseInt(YamlTool.getInstance().getInfo("es.prod.port", "cluster-address.yml"))),
new HttpHost(YamlTool.getInstance().getInfo("es.prod.hostName", "cluster-address.yml").split(",")[3], Integer.parseInt(YamlTool.getInstance().getInfo("es.prod.port", "cluster-address.yml"))),
new HttpHost(YamlTool.getInstance().getInfo("es.prod.hostName", "cluster-address.yml").split(",")[4], Integer.parseInt(YamlTool.getInstance().getInfo("es.prod.port", "cluster-address.yml"))))
.setHttpClientConfigCallback(new RestClientBuilder.HttpClientConfigCallback() {
@Override
public HttpAsyncClientBuilder customizeHttpClient(HttpAsyncClientBuilder httpAsyncClientBuilder) {
return httpAsyncClientBuilder.
//setDefaultIOReactorConfig(IOReactorConfig.custom().setIoThreadCount(2).build());
setDefaultCredentialsProvider(credentialsProvider).setDefaultIOReactorConfig(IOReactorConfig.custom().setIoThreadCount(2).build());
}
});
client = new RestHighLevelClient(restClientBuilder);
}
}
}
} catch (Exception e) {
e.printStackTrace();
}
return client;
}
}
我擦,博客的格式正式是不想整,但是看着又恶心。这个格式还是一开始用我同学给的格式。就这样吧,关键还是看内容吧。其实客户端官网都有,
那么我从官网一步一步走起。
第一步打开官网地址:https://www.elastic.co/guide/index.html
找到如图:

第二步:打开链接找到我们需要的客户端
我这个是 java 的client 实例,那么我们会有两个客户端,一个是low,一个是high。我代码的演示是high level的,其实high 是建立在基础的。那么我们要用户密码验证,怎么搞,我们发现high中是没有basi认证的,其实low里面已经提供了。在high level的介绍也是说是基础low level基础上的。那么我们在创建客户端的时候也是基于low的。所以直接看low是怎么创建的high就是再套一层壳就可以了。

然后就是自己在写代码的时候只是写了一个简单的单例模式避免client不断重建。
至于7.x之后的变化,就是没有了type,指定为_doc,这个也是在我们升级后,代码写索引的时候需要改的一个地方。还有就是用script 做脚本的时候 需要 先加 if( doc['field'].size() > 0)这样的判断,否则会报错;还有一个问题就是 es 默认返回数据是10000条,如果你想全部那么需要在查询的时候添加一个属性设置,"track_total_hits": true。
总结
东西很简单,希望对初学者有所帮助,大家共同进步,做个终生学习者。
A good leader is a good reader.
ES7.x客户端的认证创建一步一步来的更多相关文章
- nginx配置SSL实现服务器/客户端双向认证
http://blog.csdn.net/kunoy/article/details/8239653 本人不才,配置了两天,终于搞出来了,结合网上诸多博文,特此总结一下! 配置环境: Ubuntu 1 ...
- Ace教你一步一步做Android新闻客户端(一)
复制粘贴了那么多博文很不好意思没点自己原创的也说不出去,现在写一篇一步一步教你做安卓新闻客户端,借此机会也是让自己把相关的技术再复习一遍,大神莫笑,专门做给新手看. 手里存了两篇,一个包括软件视图 和 ...
- 一步一步学Silverlight 2系列(1):创建一个基本的Silverlight应用
概述 Silverlight 2 Beta 1版本发布了,无论从Runtime还是Tools都给我们带来了很多的惊喜,如支持框架语言Visual Basic, Visual C#, IronRuby, ...
- tomcat 配置客户端证书认证
在完成配置客户端证书认证后,浏览器以https访问服务器的时候,会提示选择证书,之后,服务器端会验证证书.也就意味着只有拥有有效证书的客户端才能打开该网站. 以下是具体的配置过程. 1. 在服务器端生 ...
- (转) 一步一步学习ASP.NET 5 (二)- 通过命令行和sublime创建项目
转发:微软MVP 卢建晖 的文章,希望对大家有帮助. 注:昨天转发之后很多朋友指出了vNext的命名问题,原文作者已经做出了修改,后面的标题都适用 asp.net 5这个名称. 编者语 : 昨天发了第 ...
- HBase 学习之一 <<HBase使用客户端API动态创建Hbase数据表并在Hbase下导出执行>>
HBase使用客户端API动态创建Hbase数据表并在Hbase下导出执行 ----首先感谢网络能够给我提供一个开放的学习平台,如果没有网上的技术爱好者提供 ...
- 在Laravel中一步一步创建Packages
首先要看一下Laravel官方文档,这是最新4.2的文档,假设想看中文的话点击此处,基本一样.这个github上的库setup-laravel4-package,也是一步一步介绍怎样创建一个包.并关联 ...
- 一步一步创建ASP.NET MVC5程序[Repository+Autofac+Automapper+SqlSugar](一)
前言 大家好,我是Rector 从今天开始,Rector将为大家推出一个关于创建ASP.NET MVC5程序[Repository+Autofac+Automapper+SqlSugar]的文章系列, ...
- 一步一步创建ASP.NET MVC5程序[Repository+Autofac+Automapper+SqlSugar](五)
前言 Hi,大家好,我是Rector 时间飞逝,一个星期又过去了,今天还是星期五,Rector在图享网继续跟大家分享系列文本:一步一步创建ASP.NET MVC5程序[Repository+Autof ...
随机推荐
- 用python做时间序列预测一:初识概念
利用时间序列预测方法,我们可以基于历史的情况来预测未来的情况.比如共享单车每日租车数,食堂每日就餐人数等等,都是基于各自历史的情况来预测的. 什么是时间序列? 时间序列,是指同一个变量在连续且固定的时 ...
- Rocket - debug - DMI
https://mp.weixin.qq.com/s/70BoeS7z4aBZK24zxdZzXA 简单介绍DMI的实现. 1. DMIConsts 定义DMI使用的常量: 其中: a. dmiDat ...
- Java实现 蓝桥杯VIP 算法提高 密码锁
算法提高 题目 2 密码锁 时间限制:1.0s 内存限制:1.0GB 问题描述 你获得了一个据说是古代玛雅人制作的箱子.你非常想打开箱子看看里面有什么东西,但是不幸的是,正如所有故事里一样,神秘的箱子 ...
- java实现第三届蓝桥杯DNA对比
DNA对比 脱氧核糖核酸即常说的DNA,是一类带有遗传信息的生物大分子.它由4种主要的脱氧核苷酸(dAMP.dGMP.dCMT和dTMP)通过磷酸二酯键连接而成.这4种核苷酸可以分别记为:A.G.C. ...
- 总结梳理:webpack中如何使用vue
1. 安装vue的包 cnpm i vue -S 2. 由于在webpack中,推荐使用 .vue这个组件模板文件定义的组件,所以,需要安装, 能解析这个文件的loader: cnpm i vu ...
- 深入浅出-TCP/IP协议族剖析&&Socket
Posted by 微博@Yangsc_o 原创文章,版权声明:自由转载-非商用-非衍生-保持署名 | Creative Commons BY-NC-ND 3.0 #简介 该篇文章主要回顾–TCP/I ...
- 07.Django-缓存
目录 缓存 一.如何提高网站并发量? 二.缓存方式 1. 开发调式缓存 2. 内存缓存 3. 文件缓存 4. 数据库缓存 5. Memcache缓存 5.1 使用python-memcached模块 ...
- Autoware 标定工具 Calibration Tool Kit 联合标定 Robosense-16 和 ZED 相机!
一.安装 Autoware & ZED 内参标定 & 外参标定准备 之前的这篇文章:Autoware 进行 Robosense-16 线雷达与 ZED 双目相机联合标定! 记录了我用 ...
- Java规则引擎 Easy Rules
1. Easy Rules 概述 Easy Rules是一个Java规则引擎,灵感来自一篇名为<Should I use a Rules Engine?>的文章 规则引擎就是提供一种可选 ...
- 【Jmeter】日常骚操作最简洁上传和下载
上传文件或图片 第一步:正常填写域名地址,请求头及路径(此处不过多讲解) 第二步:http请求中,高级设置——Implementation(翻译:实现)值选择修改为:java 第三步:查看结果树请求成 ...