java pdf增删改查_如何利用Java代码操作索引库?

c7d3f5f26053c516a93dca5b08527dee.png

今天是刘小爱自学Java的第161天。

感谢你的观看,谢谢你。

a05ee6b739877710666bc9fa9dea6613.png

学习计划安排如下:

  • 学了几天的Elasticserch,但都是它本身的知识点,如何通过Java语言去操作它呢?
  • 这就好比以前学数据库,在数据库工具中通过sql语句也能实现增删改查,而在Java中就可以通过jdbc操作数据库。
  • 这里不学原生的Elasticsearch客户端,而是直接学习spring提供的套件:SpringDataElasticsearch。
  • 毕竟要知道,我们以前也基本没用原生的jdbc,而是用的框架,使用起来也简便。

一、创建Demo工程

关于SpringDataElasticsearch介绍:

a96fca53b8b71b5ab9bad3960bea728d.png

学Java有一个绕不开的坎就是spring,就是主流的很多功能都会看到spring的影子。

我们已经接触过了的就有:SpringMVC、Spring、SpringBoot、SpringCloud。

今天继续接触Spring Data中的一个模块。

为了更好地学习,创建一个demo工程。

通过spring脚手架创建项目

df752342aaaf57639b48767d177aeb85.png

①Spring Initializr

使用idea开发工具创建Java项目有多种方式,以前就是通过Maven自行创建一个项目。

也可以通过Spring Initializr创建一个项目。

②说明项目名和Java版本号

项目名为es-demo,使用的jdk8.

③指定项目中需要用到的依赖

这里也就是springDataElasticsearch。

下图也就是创建好后的项目结构

074bb915b3a2f331a1b44ea6197fe919.png

该方式创建的好处在于:

我们不用自己导入依赖了,依赖是在创建项目时指定的,也就是创建项目中的步骤③

同时关于启动类、配置文件都帮我们自学创建好了,其实无外乎就是上述三个核心关键步骤:启动类、配置文件、pom文件

该方式创建的坏处在于:

版本问题,项目中可能用的是比较旧的版本,spring创建的版本需要自行修改。

根据自己的需求选择创建方式就好。

此外关于配置文件

66e813f6af0e482f161d80649bae8214.png

自行配置的是properties文件,而我们常用的是yml文件,这里将其修改成yml文件。

在配置文件中指定elasticsearch中对应的ip+端口,也就是我们前几天在虚拟机上安装elasticsearch的ip和端口。

二、创建索引和映射

我们以前使用MySQL数据库的时候,在Java中是实体类对应了数据库中的表数据。

同样的道理,现在是索引库了,在Java中也是使用实体类对应对应的索引库。

68baaac5e7eba02e732f6bc9d5bccf77.png

注解@Document说明对应的索引库:

  • indexName:索引库名称叫item。
  • type:索引库类型docs。
  • shards:分片。
  • replicas:副本。

注解@Field说明索引库字段:

类型有很多种,double属于数字型,text和string属于字符型,其中text表示分词,string表示不分词,上述中的keyword其实也就对应着string。

注意images这个字段,index=false表示不需要索引,说明该字段不需要搜索功能。

e3fd7067811e6dd72019ea6f4b1f5a11.png

我们以前学数据库的时候,在Java中操作数据库使用到了JdbcTemplate。

现在是要操作索引库,同样的道理,也有一个ElasticsearchTemplate

①createIndex()

创建索引库,参数为实体类的Class对象。

②putMapping()

说明字段映射关系,参数同上。

三、实现增删改查

通过JdbcTemplate实现数据库的增删改查,索引库中用ElasticsearchTemplate。

但是我们不用这种方式而是用其它方式。

毕竟我们现在操作数据库也没用JdbcTemplate而是常常使用通用mapper。

该方法也就类似于通用mapper。

74773c90934d78b334e9f33f1ea59dff.png

在通用mapper中我们是创建一个自定义接口继承mapper接口。

再说明泛型之后,就可以直接使用这个接口完成增删改查操作了。

同样的道理,在这里是也是自定义一个接口继承ElasticsearchRepository接口。

关于这个接口的继承体系图通过上图也能查看到,名称也都是见名知义的。

1新增索引

62d321be6978f9d34ceed134688e9ab0.png

saveAll方法,看它的名字也就知道了其对应的也就是新增操作。

其中关于新增,可以添加一条数据,也可以添加多条数据,例子中使用的是批量操作。

注意:在正式项目中应该是从数据库这种查询到需要实现搜索功能的数据,再将这些数据添加到索引库中,从而实现搜索功能。

我这边为了方便是自己创建的伪数据。

2查询索引

c69e070793b55a83723c1aa23555b753.png

findAll也就是查询所有的数据,因为我们添加了多条数据,所以查询结果是一个集合。

增强for循环遍历输出,在控制台上也就能查询到新增的数据。

同样的道理,还有deleteAll删除索引,当然这是都是最简单最基础的几种api,后续更多用法再说明。

最后

行有不得反求诸己,我是@刘小爱

一个白天上班晚上学习的95后沪漂,不为其它,只为学会自律做好自己,也愿我的每日打卡能给你带来勇气,欢迎点赞关注和评论。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/532238.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

sublime text3 怎么配置、运行python_SublimeText3按ctrl+b执行python无反应

最后更新时间:2017-09-14 现象: 在Sublime中打开.py文件,按”ctrlb”执行时无反应。点击工具->编译系统中已经有且识别到Python,但执行”run(ctrlshiftb)”时无反应,Sublime左下角提示”No B…

internetreadfile读取数据长度为0_YOLOV3的TensorFlow2.0实现,支持在自己的数据集上训练...

GitHub链接:calmisential/YOLOv3_TensorFlow2​github.com我主要参考了yolov3的一个keras实现版本:qqwweee/keras-yolo3​github.com目前支持在PASCAL VOC 2012数据集上训练和自定义数据集上训练,具体的训练过程可参考项目仓库中的README文档…

深井软岩巷道群支护技术与应用_深井软岩巷道深浅孔帷幕注浆技术

一、成果内容1.基本原理对失修巷道进行刷扩、支护,满足使用断面后进行帮顶喷浆、底板整平,先底板注浆,然后帮、顶注浆。锚架充支护巷道直接底板整平后,先底板后帮、顶注浆。通过全断面深浅孔联合注水泥浆进行巷道加固,…

店铺咨询系统c语言,课内资源

1 题目介绍1.1 问题描述出于不同目的的旅客对交通工具和交通路径有不同的要求。例如,因公出差的旅客希望在旅途中的时间尽可能短,出门旅游的游客则期望旅费尽可能省,而老年旅客则要求中转次数最少。编制一个交通咨询系统程序,为旅客提供最优决策的交通咨询。1.2 需求分析提供对…

f分布表完整图_【教育统计答疑】如何理解正态分布、均值分布、^2分布、t分布和F分布...

许多教育统计的初学者都表示这几个分布感到学起来非常吃力,结合最近上课的体会以及答疑的情况,觉得很有必要在这里简单地对这部分内容进行澄清和梳理,以助理解。首先,“为什么要学习这几个分布”可能是许多人纠结的问题&#xff0…

新颖的c语言题目,新颖版c语言经典习题100例(全面面)

新颖版c语言经典习题100例(全面面) (66页)本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦!19.90 积分实用文档C语言习题100例(最新整理版)习题目录:(按住Ctrl点击可以快速跳转到…

c语言jt808协议库,平台如何应答——关于JT/T808协议

前两篇也说明了一些应答的相关内容,对于刚接触的开发者来说恐怕还是不太容易理解,这里专门列举一个篇幅来讲解如何针对终端设备上报的信息进行应答。严格来讲,如果不应答,终端设备会判别为服务平台断开连接,就会重复发…

熊猫的python小课账号_学习python中的pandas有没有好的教程推荐?

之前好多人私信我python数据分析怎么快速入门,我在这里直接介绍一下自己的心得经验吧。 要学习pandas,我并不建议看大量的教程,等看完教程,天都黑了,一觉醒来热情都凉了。 我的建议是,首先放平心态&#xf…

ubuntu nfs linux,Ubuntu的NFS功能配置

环境:Ubuntu 10.04步骤:1.sudo apt-get install portmap2.sudo apt-get install nfs-kernel-server注意:第2步我安装失败,换源后仍然如此,最后我在新立得里面搜索到nfs-kernel-server,安装成功3.在更目录下新建共享目录:mkdir /forlinux4.gedit /etc/exprots,在后面添加/forlin…

一个android工程生成两个aar,android studio生成aar包并在其他工程引用aar包(示例代码)...

1.aar包是android studio下打包android工程中src、res、lib后生成的aar文件,aar包导入其他android studio 工程后,其他工程可以方便引用源码和资源文件2.生成aar包步骤:①.用android studio打开一个工程,然后新建一个Module&#…

android 尺寸变化动画,Android ScaleAnimation类:尺寸变化动画类

ScaleAnimation类是Android系统中的尺寸变化动画类,用于控制View对象的尺寸变化,该类继承于Animation类。 ScaleAnimation类中的很多方法都与Animation类一致,该类中最常用的方法便是ScaleAnimation构造方法。【基本语法】public ScaleAnimat…

javascript 本地对象和内置对象_详解 JavaScript 面向对象

1. 概述JavaScript面向对象比较难理解的点是类的继承。不管是es5写法还是es6写法,JavaScript继承的本质是原型链。具体可看我的上一篇文章:田浩:详解原型、原型链、构造函、实例、new​zhuanlan.zhihu.com因为es6有专门的语法,写法…

工作汇报ppt案例_【赠书】开工大吉!今年一定要干过写PPT的!

不知不觉,春节就过去了,新年开工,朋友圈里晒满了开工红包,领了开工礼就意味着真正新的一年开始了。虽然假期的慵懒安逸留下了倦怠的后遗症,但状态依旧切换到工作模式,毕竟每年都希望能比过去更进一步&#…

postscript打印机什么意思_涨知识|你不知道的关于打印机的打印过程和打印机驱动的那些事...

以前一直以为打印很简单,不就是编辑好文件按个“打印”就行了?但其实打印过程可以复杂到你分分钟“怀疑人生”。你以为的打印过程可能是这样的 ↓。我们看到的打印过程然而,真正的打印过程是这样的 ↓。实际上的打印过程打印机打印一页文件或…

python dicom图像分割_python读取DICOM头文件的实例

这篇文章主要介绍了关于python 读取DICOM头文件的实例,有着一定的参考价值,现在分享给大家,有需要的朋友可以参考一下 用dicompyler软件打开dicom图像,头文件如图所示:当然也可以直接读取: ds dicom.read_…

索尼android电视图片轮播,电视投屏居然还能这样玩?

原标题:电视投屏居然还能这样玩?现如今,投屏几乎成为大家日常生活必不可少的一种观影方式,通过电视投屏可以带来更清晰的画面效果,成为追剧党以及各类球赛爱好者的不二之选。那么今天小智就以索尼电视为例,…

android 高并发弹幕,高并发实时直播弹幕研发实践

高并发实时直播弹幕研发实践直播间特点聊天室限制人数的原因应对万级以上的实时互动跨服务器是为了解决单一服务器接入数量限制、发布消息吞吐限制等问题;多进程并发则是为了充分利用多核CPU以及减小一个循环规模从而达到降低延迟的目的。云巴实时系统的设计云巴是基…

linux python3_在Linux上安装Python 3

在Linux上安装Python 3这份文档描述了如何在Ubuntu Linux机器上安装Python 3.6。 想要获取已安装的Python 3版本号,可以通过终端运行命令: $ python3 --version 如果您使用的是Ubuntu 16.10或更新,可以通过以下命令简单地安装Python 3.6: $ s…

android手机电话铃声设置,安卓手机铃声怎么设置

网上有很多安卓手机铃声的设置教程,说什么SD卡里建立这个那个的文件夹,那问题是怎么才能进到SD卡里去建立文件夹啊?手机里哪个选项里进去呢?这里小编告诉你,可以通过电脑连接数据线管理SD卡。下面介绍两种简单的设置安…

安装squid_「首席推荐」设置Squid转发代理或者正向代理

如果您正在阅读这篇文章,您可能会因为缺少与Squid相关的信息而感到沮丧,Squid是一种非常流行的转发代理。这些令人沮丧的事情包括:在小的软件修订之后出现的重大的可用性变化,对幕后发生的事情的误解,以及真正糟糕的文档。这是一个…