前言

  好久没来写博客了,还是简单的记录一下吧。今天要写的是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客户端的认证创建一步一步来的更多相关文章

  1. nginx配置SSL实现服务器/客户端双向认证

    http://blog.csdn.net/kunoy/article/details/8239653 本人不才,配置了两天,终于搞出来了,结合网上诸多博文,特此总结一下! 配置环境: Ubuntu 1 ...

  2. Ace教你一步一步做Android新闻客户端(一)

    复制粘贴了那么多博文很不好意思没点自己原创的也说不出去,现在写一篇一步一步教你做安卓新闻客户端,借此机会也是让自己把相关的技术再复习一遍,大神莫笑,专门做给新手看. 手里存了两篇,一个包括软件视图 和 ...

  3. 一步一步学Silverlight 2系列(1):创建一个基本的Silverlight应用

    概述 Silverlight 2 Beta 1版本发布了,无论从Runtime还是Tools都给我们带来了很多的惊喜,如支持框架语言Visual Basic, Visual C#, IronRuby, ...

  4. tomcat 配置客户端证书认证

    在完成配置客户端证书认证后,浏览器以https访问服务器的时候,会提示选择证书,之后,服务器端会验证证书.也就意味着只有拥有有效证书的客户端才能打开该网站. 以下是具体的配置过程. 1. 在服务器端生 ...

  5. (转) 一步一步学习ASP.NET 5 (二)- 通过命令行和sublime创建项目

    转发:微软MVP 卢建晖 的文章,希望对大家有帮助. 注:昨天转发之后很多朋友指出了vNext的命名问题,原文作者已经做出了修改,后面的标题都适用 asp.net 5这个名称. 编者语 : 昨天发了第 ...

  6. HBase 学习之一 <<HBase使用客户端API动态创建Hbase数据表并在Hbase下导出执行>>

    HBase使用客户端API动态创建Hbase数据表并在Hbase下导出执行                       ----首先感谢网络能够给我提供一个开放的学习平台,如果没有网上的技术爱好者提供 ...

  7. 在Laravel中一步一步创建Packages

    首先要看一下Laravel官方文档,这是最新4.2的文档,假设想看中文的话点击此处,基本一样.这个github上的库setup-laravel4-package,也是一步一步介绍怎样创建一个包.并关联 ...

  8. 一步一步创建ASP.NET MVC5程序[Repository+Autofac+Automapper+SqlSugar](一)

    前言 大家好,我是Rector 从今天开始,Rector将为大家推出一个关于创建ASP.NET MVC5程序[Repository+Autofac+Automapper+SqlSugar]的文章系列, ...

  9. 一步一步创建ASP.NET MVC5程序[Repository+Autofac+Automapper+SqlSugar](五)

    前言 Hi,大家好,我是Rector 时间飞逝,一个星期又过去了,今天还是星期五,Rector在图享网继续跟大家分享系列文本:一步一步创建ASP.NET MVC5程序[Repository+Autof ...

随机推荐

  1. Java 解析 XML文件

    ​个人博客网:https://wushaopei.github.io/    (你想要这里多有) package com.example.poiutis.xml; import com.example ...

  2. Java实现 LeetCode 561 数组拆分 I(通过排序算法改写PS:难搞)

    561. 数组拆分 I 给定长度为 2n 的数组, 你的任务是将这些数分成 n 对, 例如 (a1, b1), (a2, b2), -, (an, bn) ,使得从1 到 n 的 min(ai, bi ...

  3. Java实现 LeetCode 462 最少移动次数使数组元素相等 II

    462. 最少移动次数使数组元素相等 II 给定一个非空整数数组,找到使所有数组元素相等所需的最小移动数,其中每次移动可将选定的一个元素加1或减1. 您可以假设数组的长度最多为10000. 例如: 输 ...

  4. Java实现 LeetCode 207 课程表

    207. 课程表 现在你总共有 n 门课需要选,记为 0 到 n-1. 在选修某些课程之前需要一些先修课程. 例如,想要学习课程 0 ,你需要先完成课程 1 ,我们用一个匹配来表示他们: [0,1] ...

  5. 第三届蓝桥杯C++B组国(决)赛真题

    解题代码部分来自网友,如果有不对的地方,欢迎各位大佬评论 题目1.星期几 1949年的国庆节(10月1日)是星期六. 今年(2012)的国庆节是星期一. 那么,从建国到现在,有几次国庆节正好是星期日呢 ...

  6. Java实现 洛谷 P1618 三连击(升级版)

    import java.util.Arrays; import java.util.Scanner; public class Main { private static Scanner cin; p ...

  7. java实现找素数

    ** 找素数** 素数就是不能再进行等分的整数.比如:7,11.而9不是素数,因为它可以平分为3等份.一般认为最小的素数是2,接着是3,5,- 请问,第100002(十万零二)个素数是多少? 请注意: ...

  8. java实现第六届蓝桥杯四阶幻方

    四阶幻方 把1~16的数字填入4x4的方格中,使得行.列以 及两个对角线的和都相等,满足这样的特征时称 为:四阶幻方. 四阶幻方可能有很多方案.如果固定左上角为1 ,请计算一共有多少种方案. 比如: ...

  9. java实现第七届蓝桥杯压缩变换

    压缩变换 压缩变换 小明最近在研究压缩算法. 他知道,压缩的时候如果能够使得数值很小,就能通过熵编码得到较高的压缩比. 然而,要使数值很小是一个挑战. 最近,小明需要压缩一些正整数的序列,这些序列的特 ...

  10. zabbix 磁盘分区监控

    系统环境 Zabbix 版本:3.4 操作系统版本:centos7.4 监控分区 / ./boot ./home   先创建监控项的模板 点击创建监控项 名称随意填写,键值的话因为我们监控车的是磁盘剩 ...