文档章节

快速集成Elasticsearch Restful API案例分享

bboss
 bboss
发布于 2018/04/26 00:23
字数 1202
阅读 7437
收藏 3

The best elasticsearch highlevel java rest api-----bboss

快速集成Elasticsearch Restful API案例分享,本案例代码可用于非spring项目和spring项目,兼容spring boot 1.x,2.x,兼容Elasticserch 1.x,2.x,5.x,6.x,以及后续版本。

本文中讲述的方法同样适用于其他xxx boot类型项目集成bboss es。

1.导入bboss elasticsearch

maven工程

基于maven开发的工程,在pom.xml文件中导入以下maven坐标

maven坐标

        <dependency>
            <groupId>com.bbossgroups.plugins</groupId>
            <artifactId>bboss-elasticsearch-rest-jdbc</artifactId>
            <version>5.6.2</version>
        </dependency>

gradle工程

基于gradle开发的工程,在build.gradle文件中导入以下gradle坐标

gradle坐标

compile "com.bbossgroups.plugins:bboss-elasticsearch-rest-jdbc:5.6.2"

2.配置bboss elasticsearch

极简配置,接近零配置集成bboss,默认情况下,如果就是本机的elasticsearch服务器,导入bboss后不需要做任何配置就可以通过bboss rest api访问和操作elasticsearch。

bboss会在classpath下面查找并加载配置文件application.properties,文件不存在会忽略,那么就使用默认elasticsearch地址:

127.0.0.1:9200

bboss支持单集群配置和多集群配置。获取操作单集群clientinferface组件方法,获取操作多集群对应集群clientinferface组件方法,请参考文档《高性能elasticsearch ORM开发库使用介绍》章节:【3 bboss es操作和访问elasticsearch模式】。

2.1 单集群配置

单个集群配置极简单,修改项目的application.properties文件,只需要加入以下内容即可:

elasticsearch.rest.hostNames=10.21.20.168:9200
## 集群地址用逗号分隔
#elasticsearch.rest.hostNames=10.180.211.27:9280,10.180.211.27:9281,10.180.211.27:9282

如果需要更多的配置,可以将以下内容复制到项目的application.properties文件中:

#x-pack认证账号和口令
elasticUser=elastic
elasticPassword=changeme

#es服务器地址配置
elasticsearch.rest.hostNames=127.0.0.1:9200
#elasticsearch.rest.hostNames=10.180.211.27:9280,10.180.211.27:9281,10.180.211.27:9282

#动态索引表名称日期格式配置
elasticsearch.dateFormat=yyyy.MM.dd

elasticsearch.timeZone=Asia/Shanghai
elasticsearch.ttl=2d

#在控制台输出脚本调试开关showTemplate,false关闭,true打开,同时log4j至少是info级别
elasticsearch.showTemplate=true

#客户端动态发现es集群节点控制开关
elasticsearch.discoverHost=false

#http链接池配置
http.timeoutConnection = 400000
http.timeoutSocket = 400000
http.connectionRequestTimeout=400000
http.retryTime = 1
http.maxLineLength = -1
http.maxHeaderCount = 200
http.maxTotal = 400
http.defaultMaxPerRoute = 200

# dsl配置文件热加载扫描时间间隔,毫秒为单位,默认5秒扫描一次,<= 0时关闭扫描机制
dslfile.refreshInterval = -1

这些配置的含义,可以参考文档:《高性能elasticsearch ORM开发库使用介绍》章节2进行了解。

其他各种boot框架配置的时候,也可自行创建application.properties配置文件,在其中配置需要的参数。

2.2多集群配置

通过elasticsearch.serverNames = defualt,logs指定集群应用名称,名称作为es和http连接池的配置属性名的前缀即可:default是缺省前缀名称,可以忽略

##多集群配置
elasticsearch.serverNames = default,logs

##default集群配配置
default.elasticUser=elastic
default.elasticPassword=changeme

#elasticsearch.rest.hostNames=10.1.236.88:9200
default.elasticsearch.rest.hostNames=127.0.0.1:9200
#elasticsearch.rest.hostNames=10.21.20.168:9200
#elasticsearch.rest.hostNames=10.180.211.27:9280,10.180.211.27:9281,10.180.211.27:9282
default.elasticsearch.dateFormat=yyyy.MM.dd
default.elasticsearch.timeZone=Asia/Shanghai
default.elasticsearch.ttl=2d
#在控制台输出脚本调试开关showTemplate,false关闭,true打开,同时log4j至少是info级别
default.elasticsearch.showTemplate=true
default.elasticsearch.discoverHost=false

##default连接池配置
default.http.timeoutConnection = 400000
default.http.timeoutSocket = 400000
default.http.connectionRequestTimeout=400000
default.http.retryTime = 1
default.http.maxLineLength = -1
default.http.maxHeaderCount = 200
default.http.maxTotal = 400
default.http.defaultMaxPerRoute = 200
default.http.keystore =
default.http.keyPassword =
# ssl 主机名称校验,是否采用default配置,
# 如果指定为default,就采用DefaultHostnameVerifier,否则采用 SSLConnectionSocketFactory.ALLOW_ALL_HOSTNAME_VERIFIER
default.http.hostnameVerifier =

##logs集群配置
default.logs.elasticUser=elastic
default.logs.elasticPassword=changeme

#elasticsearch.rest.hostNames=10.1.236.88:9200
logs.elasticsearch.rest.hostNames=127.0.0.1:9200
#elasticsearch.rest.hostNames=10.21.20.168:9200
#elasticsearch.rest.hostNames=10.180.211.27:9280,10.180.211.27:9281,10.180.211.27:9282
logs.elasticsearch.dateFormat=yyyy.MM.dd
logs.elasticsearch.timeZone=Asia/Shanghai
logs.elasticsearch.ttl=2d
#在控制台输出脚本调试开关showTemplate,false关闭,true打开,同时log4j至少是info级别
logs.elasticsearch.showTemplate=true
logs.elasticsearch.discoverHost=false

##logs集群对应的连接池配置
logs.http.timeoutConnection = 400000
logs.http.timeoutSocket = 400000
logs.http.connectionRequestTimeout=400000
logs.http.retryTime = 1
logs.http.maxLineLength = -1
logs.http.maxHeaderCount = 200
logs.http.maxTotal = 400
logs.http.defaultMaxPerRoute = 200
# https证书配置
logs.http.keystore =
logs.http.keyPassword =
# ssl 主机名称校验,是否采用default配置,
# 如果指定为default,就采用DefaultHostnameVerifier,否则采用 SSLConnectionSocketFactory.ALLOW_ALL_HOSTNAME_VERIFIER
logs.http.hostnameVerifier =

2.3 获取指定集群组件方法

//没有dsl配置文件
ClientInterface clientUtil = ElasticSearchHelper.getRestClientUtil("logs");//指定集群名称logs
ClientInterface clientUtil = ElasticSearchHelper.getRestClientUtil();//默认组件方法
ClientInterface clientUtil = ElasticSearchHelper.getRestClientUtil("default");//默认组件方法

//有dsl配置文件
ClientInterface clientUtil = ElasticSearchHelper.getConfigRestClientUtil("logs",configFile);//指定集群名称logs
ClientInterface clientUtil = ElasticSearchHelper.getConfigRestClientUtil(configFile);//默认组件方法
ClientInterface clientUtil = ElasticSearchHelper.getConfigRestClientUtil("default",configFile);//默认组件方法

3.验证集成是否成功

完成前面两步工作后,就可以通过以下代码验证集成是否成功,如果正确打印elasticssearch集群状态,那说明集成成功:

        //创建es客户端工具,验证环境
		ClientInterface clientUtil = ElasticSearchHelper.getRestClientUtil();
		//验证环境,获取es状态
		String response = clientUtil.executeHttp("_cluster/state?pretty",ClientInterface.HTTP_GET);
        System.out.println(response);

3.完整的demo实例工程

https://github.com/bbossgroups/eshelloword-booter

https://gitee.com/bboss/eshelloword-booter

4.参考文档

https://esdoc.bbossgroups.com/#/development

5 开发交流

elasticsearch技术交流:166471282

elasticsearch技术交流:

© 著作权归作者所有

bboss

bboss

粉丝 125
博文 62
码字总数 71419
作品 9
长沙
程序员
私信 提问
bboss elasticsearch v5.0.6.2 发布

The best elasticsearch highlevel java rest api-----bboss bboss elasticsearch v5.0.6.2 发布 v5.0.6.2新增功能及改进: 1.升级最新的bboss版本到5.0.5.7 2.新增bboss es rest boot模块,......

bboss
2018/04/29
707
1
快速集成Elasticsearch Restful API案例

The best elasticsearch highlevel java rest api-----bboss 快速集成Elasticsearch Restful API案例分享, 本案例中代码兼容spring boot 1.x,2.x,兼容Elasticserch 1.x,2.x,5.x,6.x,以及后续......

bboss
2018/04/26
0
0
bboss es 5.0.3.9.1 发布,高性能Elasticsearch ORM开发库

高性能Elasticsearch ORM开发库bboss es 5.0.3.9.1发布 bboss es是一款基于query dsl语法的Elasticsearch ORM开发库,底层基于http restful。使用bboss es,可以快速编写出访问和操作elastic...

bboss
2018/01/30
2.3K
4
高性能Elasticsearch ORM开发库bboss es 5.0.3.7.8发布

bboss es v5.0.3.7.8已发布。bboss elasticsearch是一套基于query dsl语法操作访问分布式搜索引擎elasticsearch的o/r mapping开发库,底层基于es restful api。使用bboss es,可以快速编写出...

bboss
2017/11/16
2.2K
4
Elasticsearch 1.7.0/1.6.1 发布,分布式搜索引擎

Elasticsearch 1.7.0 正式发布,基于 Lucene 4.10.4。同时还发布了 Elasticsearch 1.6.1 bug 修复版本。这两个版本都包括一个安全修复,建议所有用户升级最新版本! 下载: 最新稳定版: El...

淡漠悠然
2015/07/17
4.9K
10

没有更多内容

加载失败,请刷新页面

加载更多

java通过ServerSocket与Socket实现通信

首先说一下ServerSocket与Socket. 1.ServerSocket ServerSocket是用来监听客户端Socket连接的类,如果没有连接会一直处于等待状态. ServetSocket有三个构造方法: (1) ServerSocket(int port);...

Blueeeeeee
41分钟前
4
0
用 Sphinx 搭建博客时,如何自定义插件?

之前有不少同学看过我的个人博客(http://python-online.cn),也根据我写的教程完成了自己个人站点的搭建。 点此:使用 Python 30分钟 教你快速搭建一个博客 为防有的同学不清楚 Sphinx ,这...

王炳明
昨天
4
0
黑客之道-40本书籍助你快速入门黑客技术免费下载

场景 黑客是一个中文词语,皆源自英文hacker,随着灰鸽子的出现,灰鸽子成为了很多假借黑客名义控制他人电脑的黑客技术,于是出现了“骇客”与"黑客"分家。2012年电影频道节目中心出品的电影...

badaoliumang
昨天
13
0
很遗憾,没有一篇文章能讲清楚线程的生命周期!

(手机横屏看源码更方便) 注:java源码分析部分如无特殊说明均基于 java8 版本。 简介 大家都知道线程是有生命周期,但是彤哥可以认真负责地告诉你网上几乎没有一篇文章讲得是完全正确的。 ...

彤哥读源码
昨天
14
0
jquery--DOM操作基础

本文转载于:专业的前端网站➭jquery--DOM操作基础 元素的访问 元素属性操作 获取:attr(name);$("#my").attr("src"); 设置:attr(name,value);$("#myImg").attr("src","images/1.jpg"); ......

前端老手
昨天
6
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部