安装部署Elasticsearch7.3.1及Head插件,并且封装HighLevelRestClient里的基本增删改查聚合操作

ElasticSearch

前言

ElasticSearch的javaAPI官方一共提供了有三种:TransPortClient,LowLevelRestClient,HighLevelRestClient。
目前TransPortClient已经被废弃了,并且官方极力推荐HighLevelRestClient,本次的项目使用的就是HighLevenRestClient,目前论坛上相关资料还比较少,所以大部分参考的是ES官方文档。

在Windows系统安装配置ElasticSearch

在官网下载ElasticSearch:官网下载ElasticSearch

下载完后解压(ES需要在本机安装JDK,这里默认已安装),进入到目录文件夹config,编辑elasticsearch.yml

打开注释

cluster.name
network.host
http.port

在末尾加上

http.cors.enabled: true
http.cors.allow-origin: "*"

然后使用cmd进入到解压包目录下,执行命令elasticsearch,即可开启es服务,在浏览器中访问localhost:9200能看到一串js数据就说明安装成功了

Head插件的使用

安装Head插件需要nodejs和grunt

Node.js

Node可以从官网下载官网下载Node.js,下载后进行安装即可,安装完成后打开cmd,使用node -v命令查询Node是否安装成功

grunt

然后进行grunt的安装,cd到Node.js根目录下,运行命令npm install -g grunt-cli

Head插件

下载head插件
下载head插件的压缩包,并解压到本地,修改Gruntfile.js文件中加上一句hostname:’*’

connect: {
    server: {
        options: {
            port: 9100,
            hostname:'*',
            base: '.',
            keepalive: true
        }
    }
}

在elasticsearch-head-master目录下执行npm install命令,然后执行grunt server命令即可打开elasticsearch-head服务,通过浏览器访问localhost:9100端口,即可进入head页面

项目结构

parse包

parse包里面主要包含了对配置文件的解析
CenterConfig类里会扫描当前项目目录resource路径下的所有文件,如果是.xml,.properties,.json为后缀的文件,则会解析出properties和json文件中的所有键值对,xml文件中的所有标签名和内容放到Map集合中

query包

里面包含三个类和一个枚举类
枚举类ESEnums:里面有QueryType用来列举要创建的QueryBuilder类型
BuildQuery:初始化并创建对应的QueryBuilder
ConfigBoolQuery:用来配置boolQuery
ESConfigQuery:用来选择要创建的QueryBuilder类型并且传入参数并调用BuildQuery类初始化并创建QueryBuilder

tools包

tools包里只包含一个类:EnumNameChangeToMethodNameTool
用来将枚举名转换为方法名

CreateESClient类

用来创建并初始化HighLevelRestClient

ESSingleton类

这是一个单例类,用来存放配置文件的配置信息和持久化存放HighLevelRestClient

ESTools类

此类的构造函数执行对配置文件的解析和对Client的初始化
并且封装了对ES的大部分操作

createIndex():创建新的索引

addDocument():添加文档

deleteById():通过ID删除文档

deleteByField():通过匹配的字段值来删除文档

updateById():通过ID修改文档

searchAndGetString():搜索并返回json字符串

searchAndGetMap():搜索并返回jsonMap数据

groupByTermsAndGetStats():通过Terms聚合搜索并且返回指定key的stats对象

groupByTermsAndGetStates():通过Terms聚合搜索并返回stats对象集合

groupByDateRangeAndGetStats():通过DateRange聚合搜索一个时间段,并返回Stats

groupByDateHistogramAndGetStates():通过DateHistogram聚合按每个时间段聚合搜索分段如年,月,日并返回时间段的Stats集合

reIndex():把一个索引迁移到另一个索引,迁移的包括Settings,Mappings和数据

searchByPage():分页查询

使用

首先

首先在xml配置文件中配置主机、端口和scheme

<host>127.0.0.1</host>
<port>9200</port>
<scheme>http</scheme>

实例化ESTools类

 ESTools esTools = new ESTools();

获取Client

获取client,调用getClient()方法可以获取当前配置的RestHighLevelClient

RestHighLevelClient client = esTools.getClient();

创建Index

创建新的index

esTools.createIndex("index1");

添加

添加文档,给一个指定的Id添加文档

HashMap<String,Object> map = new HashMap<String,Object>();
        map.put("date","2018-10-01");
        map.put("age","20");
        esTools.addDocument("user",
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值