java es mysql_java操作ES整个流程介绍_新智元的博客-程序员宅基地

技术标签: java es mysql  

一 准备工作

下载elasticsearch-6.7.0和展示ES数据的界面工具elasticsearch-head-master,本人电脑已安装IntelliJ IDEA 2019.3 x64的java工具。

简单点,我们直接按默认配置学习。

windows直接点击elasticsearch.bat启动ES。

620f61a7c59c6e2ada82a10eb8332b89.png图1

使用npm run start启动elasticsearch-head-master,然后就可以从界面上查看ES数据。

c988366baceac26f7787755b7649fd04.png图2

b46137ef2f82f151cc955ff0e0921f8c.png图3

f7c1de932a7d88f710341c2df6baa13f.png图4

二 java操作入库ES数据

1、引入elasticsearch包

io.searchbox

jest

${searchbox.version}

org.elasticsearch

elasticsearch

${elasticsearch.version}

2、将库表里的数据导入部分到ES上

public void testSave() throws IOException {

//对象 ArticleHomeDto是要存入ES里的字段设置

ArticleHomeDto dto = new ArticleHomeDto();

dto.setSize(50);

dto.setTag("__all__");

//从mysql数据库里查出要存入ES的内容

List apArticles = apArticleMapper.loadArticleListByLocation(dto, (short)0);

//开始循环入库到ES

for (ApArticle apArticle : apArticles) {

ApArticleContent apArticleContent = apArticleContentMapper.selectByArticleId(apArticle.getId());

EsIndexEntity esIndexEntity = new EsIndexEntity();

esIndexEntity.setChannelId(new Long(apArticle.getChannelId()));

esIndexEntity.setId(apArticle.getId().longValue());

esIndexEntity.setContent(ZipUtils.gunzip(apArticleContent.getContent()));

esIndexEntity.setPublishTime(apArticle.getPublishTime());

esIndexEntity.setStatus(new Long(1));

esIndexEntity.setTag("article");

esIndexEntity.setTitle(apArticle.getTitle());

Index.Builder builder = new Index.Builder(esIndexEntity);

builder.id(apArticle.getId().toString());

builder.refresh(true);

Index index = builder.index(ESIndexConstants.ARTICLE_INDEX).type(ESIndexConstants.DEFAULT_DOC).build();

JestResult result = jestClient.execute(index);

if (result != null && !result.isSucceeded()) {

throw new RuntimeException(result.getErrorMessage() + "插入更新索引失败!");

}

最终入库到ES内容如下:

5a2775df4d29d1df909d5c2c5686b125.png图5

三 ES上查看操作数据

1、基本查询:查询某个字段是否包含某内容,match

eabce7bf6fefcea79ba7a0f1b8e37e97.png图6

2、复合查询:查询某条数据

1cfa79de8f92e93cd28f1b7dd13d8326.png图7

3、复合查询:查询包含关键信息的数据,查询包含“极客头条”的数据

9f07d64fc8d5260ce3f5b68f68254dae.png图8

4、复合查询:查询包含关键信息的数据,只要满足一条即可查出来

2e7c31820e0cd604c44514ded9ba3511.png图9

5、复合查询:查询包含关键信息的数据,must和should混合使用

7921c39622a76e57d601dae7890b78c2.png图10

四总结

本节简单介绍了windows环境下如何安装ES,如何用java导入数据到ES,并且在ES界面上查询ES里的数据,同样我们也可以在ES上操作数据,用put命令实现增删改操作。

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_29668665/article/details/113980338

智能推荐

28muduo_net库源码分析(四)_INGNIGHT的博客-程序员宅基地

1.定时器(1)muduo的定时器由三个类实现,TimerId、Timer、TimerQueue,用户只能看到第一个类,其它两个都是内部实现细节(2)TimerQueue的接口很简单,只有两个函数addTimer和cancel(3)EventLooprunAt  在某个时刻运行定时器runAfter  过一段时间运行定时器runEvery  每隔一段时间运行定时器can

如何检测和禁止局域网内二级路由和网络共享?_weixin_34220963的博客-程序员宅基地

局域网内的私接路由器、私接随身WiFi等行为,不但会让其他客户机绕开上网行为管理的管控,破坏局域网上网秩序;而且会干扰企业WiFi的无线信号。所以在企业局域网中,一般都是严禁私接路由器的。在“WFilter是如何来屏蔽和禁用随身wifi的?”一文中,我们介绍了如何使用“随身WiFi和私接路由检测插件”来检测和惩罚局域网内的私接行为。该插件使用简单方便,而且功能强大;一直倍受用...

2020年3月TIOBE语言排行榜-Delphi 也将Out_mario_lover的博客-程序员宅基地

2020年3月TIOBE语言排行榜:Deiph可能要退出前20TIOBE近期公布了2020年3月编程语言排行榜,前十名变化不大,分别是Java, C, Python, C++, C#, Visual Basic .NET, JavaScript, PHP, SQL和Go,和上个月相比,Go语言超越Swift排在第10位,Swift出局前十,位于13。Java、C和Python依然霸占前三名,...

pythonpath环境变量pth_使用pth文件添加Python环境变量方式_翡翠多多-唐勇的博客-程序员宅基地

有时,在用import导入项目文件夹里自己写的python文件时,常常说找不到该文件,这时可以将项目路径添加到PYTHONPATH下。暂时添加:import syssys.path.append(项目路径)这种方法只会存在内存里,一旦退出python就没有了一劳永逸:在D:/anaconda/env/pytorch/lib/site-packages/里新建txt,修改后缀为.pth,在其中加入你...

html-css3-day04内容_hanmiao12345的博客-程序员宅基地

day04老师所讲内容复习内容input标签的type属性text 单行文本框password 密码框radio 单选按钮,同一组的单选按钮name值一样,checked属性默认选中checkbox 复选框,同一组的单选按钮name值一样,checked属性默认选中file 文件选择按钮,文件上传按钮form的enctype设置成multipart/fo...

网络互联基础_iteye_3224的博客-程序员宅基地

一、OSI七层协议 OSI(Open System interconnection)开放系统互连参考模型 ISO(International Standards Organization)国际标准化组织1、物理层 机械性能:接口的型状,尺寸的大小,引脚的数目和排列方式等。 电气性能:接口规定信号的电压、电流、阻抗、波形、速率及平衡特性等。 工程规范:接口引脚的意义...

随便推点

idea 自动生成junit依赖_怎样在IDEA中使用JUnit4和JUnitGenerator V2.0自动生成测试模块..._weixin_39625782的博客-程序员宅基地

因为项目的需要,所以研究了一下自动生成测试代码。将经验记录下来,总会有用的。我个人认为,好记性不如多做笔记多反思总结。1. 前提条件开发环境已正确配置工程已解决JUnit依赖关系(pom.xml)我用的是4.12版本: 1 2 junit3 junit4 4.125 2. IDEA中JUnit配置打开Settings窗口搜索junit,如图(两个插件都勾选添加)...

MySQL开启远程连接_门时的博客-程序员宅基地

在同班大神的提点下,终于知道了怎样开启MySQL远程连接。在此小记,另外我使用的是Windows系统,不是Linux。▍打开MYSQL1、打开命令提示符:可以通过在搜索“命令提示符”找到它,然后打开或者按下【Win+R】,在弹出的运行窗口中输入【cmd】,然后按【确认】键打开。打开后如下图所示:在窗口中输入:【net start mysql】,然后按下【Enter】键...

Keras 文本TOPIC分类小结_weixin_30376323的博客-程序员宅基地

Keras 文本TOPIC分类小结1.任务简介对一段输入文本预测其类别。因时间有限,只在20 news group数据集上进行实验。以下是20 news group数据集的简介The 20 Newsgroups data set is a collection of approximately 20,000 newsgroup documents, partitioned (...

spring-cloud-zuul Mysql 实现动态路由以及手动刷新_17245的博客-程序员宅基地_zuul动态刷新路由

本文建立在spring-cloud-zuul环境搭建的基础上进行扩展介绍。介绍 实现zuul的动态路由可通过两种方式 1. 基于配置中心实现配置文件动态刷新 2.基于数据库存储配置文件,发布 RoutesRefreshedEvent 事件,触发 SimpleRouteLocator 重新加载配置实现步骤1.数据库初始化CREATE TABLE `zuul_route` ( `id` varchar(50) NOT N...

单目视觉测距(个人探究记录)_JianRobSim的博客-程序员宅基地_单目视觉测量

1、前言单目测距通常有两种方式: 1)已知物体实际尺寸和相机焦距利用相似三角形求得相机与物体之间的距离。 2)已知相机高度以及被测物体与地面的接触点求距离,这种方式与第一种方式相比为被测物体的实际尺寸是未知的。 ---已知参照物的实际大小,求未知物的实际尺寸。实际上,单目测距在mathwork上有一篇demo,但是这篇demo求得的是与...

2022最受欢迎开源免费CMS建站系统排行榜_JunyouYH的博客-程序员宅基地_开源网站系统

转载:https://www.yundashi168.com/321.html随着互联网及web应用技术的蓬勃发展,网上针对企业建站的各种CMS建站系统层出不穷,如今企业建站和维护的成本已不像过去那么高。经常在网上看见有人问及”哪个CMS系统最好用”、”企业建站用哪个CMS系统最多”等类似问题,所以本文将和大家一起分享2018年最受欢迎的开源免费CMS建站系统。随着互联网及web应用技术的蓬勃发展,如今企业建站已不像过去那样开发维护成本高,因为网上针对企业建站的各种CMS建站系统层出不穷。经常在网上.

推荐文章

热门文章

相关标签