00:00
好,前面呢,我们整合G基数来通过9200端口操作ES,接下来呢,就来整合spring data ES模块,我们从它的po文件里边,好,我们就把spring data打开。打开这G呢,我们还留在这,然后呢,我们来配置一下们来到配置文件里边,前面这个是G的配置,而spring data elastic search的配置,在spring里边,点elastic search,我们看到需要配置呢,一个是节点的名字,还有一个。咱们这个节点信息。第2CLUSTER no,诶我们之前分析过,那么这个节点的名字呢,就是我们啊,我们来看一下我们这个9200,这个节点名呢,在这search来复制来好这个路子我们填成这个主机地址,加上我们这个9300端口,哎,它不是用9200HTV通信的,好把这个配上以后呢,我们来直接启动。
01:10
但是呢,我发现这有报错,注意他说这个connection refused连接拒绝说我们这个9300有问题,是什么问题呢?再我来往上看,这是连接超时等等等等,都是我们这个节点传输有问题,这个问题的原因在哪?我们来得给大家说一下,我们来看这个spring data引入的ES相关的模块,我来往下翻,ES呢,它用的是246版本,而我们这个ES呢,是569版本,也就说我们这个。ES版本有可能ES版本有可能不合适。我们需要找到一个合适的spring data版本才行,那我们来参照官方文档,好,那在这呢,来搜索一下spring data。
02:07
能来到spring的官网。在这。Projects里边来找到spring data,我们来看他们是怎么样进行版本适配的。spring data search在这儿,好,我们来打开它的这个文档。306好,来往下。这块呢,有一个叫version control,好来点过来。翻到下边的说明。好,这块呢,有一个表格画出了spring data ES模块跟真正的S之间的版本适配关系,把这个表格呢,我来复制过来,这个关系呢,一定注意。好,版本适配呢,我们在这里边来来看版本适配说明在这,那么我们当前spring BOO这个版本关系呢,我们来给大家分析一下diagram好受dependenceies,我们呢主要来看spring search,我们这个starter呢,跟spring BOO一样,1512版本,那这starter呢,赢的spring,我们来看一下,它呢是211版本,我们来看一下它的适配关系,那我们这个211,那都是二版本的,它都是跟ES2点几版本适配的,所以说呢,我们现在有两种办法来解决这个问题,第一种我们换spring BOO的版本,换更高版本来支持我们的五版本的ES,另外一种办法呢,我们就安装一个二版本的ES,那我们就在这来说一下,这块呢特别要注意。
03:47
如果版本不适配,如果版本不适配,哎,两个办法,第一个是来升级升级spring boot版本,第二个就是呢,我们来安装对应版本的ES。
04:06
我呢就不来升级spring boot版本了,因为升级也不一定正合适我们这个569版本,我呢就来安装一个我们这儿合适的ES,我们来看我们现在呢,它整合的这个ES用的是246,那我们就在这呢,我们来安装246的ES,我从docker里边来搜一下let's take。我们来看一下这个官方镜像里边有没有26的版本点进来。看一下它的这个标签,我们来看下边。哎,这呢,有这个246版本,那好没问题,那接下来呢,就连上linuxx虚拟机用doer呢,我们来装一个246的ES。好。首先呢,我们来看docker images这个ES呢,之前下载的是新版本的,那接下来呢,我们docker库那下载一个246的,还是用这个镜像加速好,用这个镜像加速,我们把这个加速地址呢,我来复制过来。
05:14
复制。好,我们呢叫take search,然后呢冒号我们是2.4.6版本回撤。好,这个呢就下载完了,我们来看docker images来我们发现呢有这个ES246的镜像,那接下来呢,就来继续安装doer RA-E来首先改变ES的咱们这个Java options,好我们来设置它的两个大小,一个杠XMS,我们设成256,还有呢杠XMX我们也设置成256。好把这两个大设置以后呢,我们接下来加上杠D,后台运行杠P,我们来暴露端口,我们把虚拟机的929200呢,虚拟机已经有了,我们把虚拟机的9201映射到我们内部ES容器的9200,包括呢,继续杠P,把虚拟机的9301映射到我们内部的9300,好接下来呢,我们用杠杠内我们第二个ES,我就叫ES02,然后呢,我们来把这个镜像。
06:30
ID复制过来。运行好,我们用刀开来看一下,我们ES02呢就启动起来了,我们来访问9201。9201,哎,我们这个246版的ES就装上了。再来修改一下之前的配置,好来到properties里边来不叫93009301,把这个停掉,来重启一下。我们看现在他是否还会报错。
07:04
哎,我们发现呢,在这儿启动成功,而且这呢显示添加到了我们这个传输节点9301,那要怎么用呢?大家可以参照官方文档,哎,第一种用法呢,可以来写这个elas search这种用法,或者呢用下边EL search temp我们都来测试一下,好这呢两种用法文档呢,大家可以参照一下,我们先来测第一种,我们来编写一个elastic search的子接口,那这种办法,那好,我要给ES里边存储数据呢,我自己就来写一个Y。好,那这个接口写上,那放到reposity这个包里边儿。Reposity接口好,我们呢就叫book reposity假设呢,我们要存取book类型的数据,好什么呢?Let take searchsy,发现呢,它需要两个型,第一个型呢,用的是我们要存取的数据的类型,第二个是它主的这个类型,这跟我们GPA的用法一样,那比如我们就来写一个B,这B呢,我们就叫book。
08:20
Book里边呢,有一些属性private inte ID,这是图书的ID,还有呢,Private string,图书的book name,包括呢,还有书的作者string,这个also,好,那么呢就来写上这几个属性,Get set方法我们来加上。包括呢to string方法,我们呢也来加上to string。好,那么这个类写好了呢,我们book reposy泛型,我们就加上第一个泛型呢,我们来写book,好,我们要操作book,而book的主键呢,是TE类型,好,接下来呢,这个booksy继承了它,那就有EL searchsy里边的所有方法了,给里面保存数据,哎,查询等等,我们就来测试一下,给ES中保存一个book数据,哎,我们注入book book。
09:24
好,我在这呢写一个测试方法,Public word test02。And test,那我们这个booky呢,它直接有一个方法点一个,哎,有一个呢,叫index给里边保存,保存一个什么呢?当然就是book对象,我们来写一个book book等于你有一个book。我们把这个book呢传进去,它呢会给ES中来存储,但是我们说这个book呢,作为一个文档存在哪个,所以哪个类型下一定要标注,所以说呢,我们在这个book类上,我们来标注一个注解叫document,注意这是elastic search的注解,这里边呢有一个叫index name,诶我们存储的索引名字,比如呢,我们就存在at硅谷线,还有一个呢,叫type类型,类型呢我们就叫book,好,我们把所有的book都存在这个book类型下,然后呢,我在这继续来测试。
10:31
运行。哎,我们发现呢,这有运行成功,我们来查一下们在这里边9201,我们来查什么呢?查at特硅谷的book下边所有的数据,我直接来写一个search,诶能看到呢,有咱们这个硅谷的这个数据,只不过ID book name author我们都没写,那我们接下来来来存一个有数据的东西,哎,这个保存就没问题了,我们来set一个IDE book.set一个book name,比如西游记book.set一个author,比如吴成恩。
11:20
好,我们来重新来给这里边存储一个,那接下来呢,我们在ES中来查数据,那就会有多个查询,哎,我们发现呢,就有咱们这个ID为一的,我们直接来查ID为一的book,好没问题,那么一些基本的增删改查呢,我这个booky里边都有C f12看一下来,我们来展示一下这个,比如有记数删除啊,寻找的寻找单个的保存搜索,包括呢,它也支持我们来写自定义方法,比如我来写一个public Dis。好,我来写一个找一个book,怎么找呢?我写一个found by,我按照什么找,按照book name,按照book name like就是这个模糊查询的,好,我们来写一个string book name来传入博内,就写好方法名就行了,不用写实现,那么默认呢,我们就会去ES中来帮我们来找图书,找图书的什么呢?按照书名来给我们模糊查询,来测试一下。
12:26
好,那这段呢,我来注来测试,来按照书名books点来found by book name like,来传一个署名,我就传一个啊,游记。好,我传个游字来,看能不能查出西游记,好查出呢,有这个book,而且他在这儿啊,我们来帮忙遍历了一下,我直接来输出吧,看他能查几个部分,好来测试一下。
13:00
好,我们发现呢,我们查出了西游记无成,恩,哎,没问题,那呢,我们能怎么样去来命名这些方法啊,我们只需要来写方法名,大家呢,就来可以参照官方文档,那spring data的官方文档这儿呢,有一些事例,我们来倒退一步,哎,我们是从spring data home spring search到官方文档里边。来,可以来参照。参照,那么这里边的命名方式呢,大家就直接来往下翻,下边呢有我们elastic search reporty,我们这个方法啊,查询方法,查询方法呢,他们怎么样命名,是相当于发的什么查询表达式,这呢都有一一的对比,而且呢它也支持直接呢将自己的查询表达式用at Co注解来标注上,自定义的一个方法上,那么大家呢都可以来做一尝式,而且呢下边呢也有search complete的使用例子,那么大家按照文档来试出来就行了,我呢就不再一一测试了,大家呢就参照文档或者持续关注我们上硅谷后续相关系列的课程。
我来说两句