00:00
好,接下来呢,我们就使用spring boot整合search进行测试,我来创建上一个新的工程。好,我们来点下一步。报名呢,我们来写come,第二,硅谷好,这一块呢,我们就叫spring boot。03ELASTIC。好,那我们把这一块的报名,我们来也改过来。下一步选中模块呢,首先我来选上外网模块,方便测试这块版本呢,我们暂时还以1512为例,ES呢,我们在no circle部分我们选中search,好,我们选中点下一步就行好finish。好,这个工程呢,就创建出来了。我们来打开看一下它的po文件,哎,发现这个po文件里边呢,引入了start data search,其实我们以前说这些加了data的都是用么data来操作的,好,那么来点进来看一下,诶,它这一块呢,确实引入了spring data search,那么结论就是springbot默认用spring项目来操作search springbo默认使用咱们这个spring。
01:30
A let's take search。模块进行操作好,那么我们再来分析一下ES的自动配置都做了哪些来展开,来到我们springbo auto confi包好来找所有跟ES有关的自动配置,Auto conffi里边我们来找,这有一个data,里边呢有elastic search,这是spring data对elastic search的一些自动配置,包括呢,下边大家来看这还有一个search,这叫G,这是非常流行的一个ES客户端工具,它利用HTVP的方式跟ES进行交互的,所以呢,它有两种方式来操作ES,我们来记录一下。
02:22
好,我们放在主程序里边。好,Spring boot呢来说spring spring boot默认支持两种技术,两种技术来和咱们这个ES交互,那么呢,第一种是这个,第二种呢是spring EL search。那我们来看哪种技术生效,到底怎么生效呢?来还是往下翻,我们先看这个的这个自动配置,来打开这auto configuration点进来,但是呢,我们发现由于我们缺少导了一个包,这其实是不生效的,所以说默认呢,如果想要它生效,我们需要导入这个包。
03:16
啊,这个呢,是默认不生效的,默认不生效的,哎,那呢,需要导入咱们这个G的工具包,哎这呢有一个完整描述,好我们来看伊search的自动配置,那这个呢,我们就不看了,它不生效,如果生效的话呢,它就是用这个g client来和我们这些啊9200端口,ES的9200端口来进行HTP交互,就类似于我们发起,而我们来看呢,这由elas search auto,他给我们配置了什么呢?我们往下看,诶我们看到他给我们配置了一个连接ES的这个客户端,这个客户端配置的时候呢,可能需要指定一些属性,比如集群里边的每一个节点的信息,包括呢,每一个节点的名字,好所以说呢,这是第一个啊,他帮我们是不是。
04:17
Search帮我们自动配置了正品内容,第一个内容是给我们给了一个客户端,我们可以用客户端,好客户端,只不过呢,我们这个客户端呢,大家需要来配置上,哎,这一块我们都看到了这个cluster news,哎。我需要配一个这些信息,包括呢,还有这个cluster,咱们这个names比就说我们后来如果要配,我们就需要指定这俩属性啊来放在这,这是呢我们节点信息,那么第二个它还为我们配了什么呢?啊,那么这个就我们就不看了,这还有一个elastic search data auto configuration在这呢,诶他帮我们配了一个叫elasticl,哎,我们我们这些用的已经非常多了,比如我们以前用过操作数据库的JBC操作的操作rabbit m等等等等,那么由此可见,S在整合很多技术的时候呢,都会引入相关的tempt来操作就行了,它呢来操作yes,除此之外呢,Three boot还引入了。
05:37
哎,这有一个叫EL searchs auto,它的作用呢,其实就是启用了这个elastic searchsy这个接口,它呢就类似于GPA的那种编程方式一样,我们呢可以写一个接口来继承于这个SY,那么呢,它就有这个PRY以及它的负PY,哎,这是一个对ES的增删改查操作,我们的接口呢,就会有相应的所有方法,比如这个方法呢,有索引给我们ES中存数据,还有搜索等等等等,就是说我们可以用这种编程方式好来复制过来。
06:15
我们呢也可以来编写一个这个的子接口来操作ES来,这就是类似GPA的变证方式一样行,那么呢,这两种技术我们就先来测je哎,Spring呢我们来稍后来测,我呢就将spring呢我先注掉。好,我们来到这个POM文件中。来操作ES呢,我来注掉,我们来导入这个,来到我们这个中央仓库,好来搜索一下这个。你就道好,这呢就是这个IO search box,哎,就是它点过来,我们要用哪个版本呢?跟我们这个ES来看,我们这个EL take search呢是569版本,那我们就要用五版本的这个G,那么ES是二版本的就可以来选用,那我就用最新的533好复制来,复制来呢,我们来放在这儿,这是我们导入的G版本,导入进来以后呢,我们需要哪些配置,我们先来看我们这个je的自动配置有没有生效,这我们来找一下je auto configuration,好,一导入进来以后呢,这块就不红了,哎,它就生效了,生效以后呢,我们需要配置一些属性,配置哪些属性呢?比如用户名,密码,重要的是这个u r is就是这个uri,这个uri呢,它默认是写的是跟本机的9200来进行交互的,而我们呢,是跟我们远程主机的,我就来只。
07:56
需要配一个spring elastic search us好,我们来配一下spring,第2EL search好把这个uri来配来,配来呢,我们就来写上一个,哎,我们的这个远程主机的地址啊,复制来好,这个地址呢,我们写好以后我来启动。
08:20
我们先来看有没有启动报错。没有的话呢,我们就来用这个,它给我们自动配置的,我们叫g client,我们来交互就行了。好,启动起来。好,这一块呢,暂时没有报错,好那我们就没问题了,而且这一块打印他说这个server铺,我们这个连接池已经连到了这个9200端口了,我就可以来使用了,那来测试一下g client好,那在这个单元测试里边,那把它呢自动注入,这是为我们自动配置好的这client好,我们把它自动注入过来,自动过注入过来呢,我们就以一个例子为例,我们呢,现在给给。
09:10
ES中保存啊,我们称为索引,也就是我们说的保存工作,所以一个啊文档,比如呢,举一个例子,我来写一个B类。我们在这来创建一个B,这个B呢,我们假设叫article,好,我们要索引一篇文章。这个文章呢,哎,有文章的ID,比如我们来写一个integer吧。ID,还有文章的,比如砖的作者。包括呢,文章的标题,还有文章的内容。
10:03
Get set方法呢?来给它加上。好。我们呢,还需要给他这个ID字段来加一个just ID注解,哎,来标识这是一个主键,好,那在这个spring BOO测试类里边们如何将一个article保存在我们ES中呢?比如我们来用了一个article,好呢,把它创建出来。来设置上它的这些属性,article.set ID,比如这是一号,然后呢,article.set title,哎,比如呢,文章的标题好消息啊,这是一个标题,然后呢,我们再来article第二,比如我们来set also的作者啊,来写一个张三。还有article第set内容,好内容呢,我们就来写一个hello word吧,啊这呢是我们一个文章,那如何给ES中保存呢?哎,非常简单,文介里边呢,有一个对象叫new,一个index里边的这个build.build build里边你要保存什么,我们把这个传递过来,然后呢,把它保存在哪?哎,我们就要指定一个索引位置,比如呢,我们把它保存在at硅谷这个索引下边类型是什么呢?我们也继续来指定,使用type来指定类型,比如呢,我们就叫news,都是一些新闻,好,那保存完我们还可以指定这个ID,哎,这个ID是什么呢?ID我们这儿有,那我就不写了,那我们把这几个写好了以后呢,我们接下来点一个build,哎,构建好。
11:53
回车,你把这个内容拿来,这是我们一个index索引啊,构建一个构建一个索引功能,哎,这是我们这个索引功能,然后呢,我们就来执行就行了,我们使用just client.excute然后呢,把我们这个index传进来,我们来这样来执行,它执行的时候呢,这可能会抛异常死亡的位置传看指一下,好,这是我们接下来执行,那么我们接下来测试一下我们这个执行能不能成功,我来让。
12:33
哎,我们发现呢,它这一块运行成功,控制台呢,也没有什么报错,我们来查询一下,我们就在这个ES9200,我们有一个索引叫at硅谷,At硅谷下我们找NEWS1,诶我们发现呢,我们查到了这个一号的新闻,张三好消息,Hello word没问题,那我们再来尝试一下搜索。
13:01
好,我们在这呢,来测试一个使用G来进行搜索search,我们呢就以全文搜索为例,好,那这个测试搜索,这个搜索怎么做呢?哎,还是一样,那这个搜索呢,也是非常简单,我们只需要用一个search,哎,里边呢还有一个build的build build呢我们要搜索什么,我们就要构建条件,这个build呢,里边呢传的就是我们这个查询表达式,我们可以把那串杰S我们直接复制来。比如我们去以前曼里边发过的一个好,来复制来复制。复制过来以后呢,来粘贴过来,这是我们这串解S,只不过搜的时候呢,我用content内容来搜,我来搜带hello的这些内容,好我们把这个搜索表达式我们来传过来,当是在哪个索引下搜呢?我们肯定要指定一个索引,需要用and index好来指定在哪个索引下,那在at硅谷这个索下,然后呢再来添加我们在哪个类型下搜and type好我们来添加一个,比如我们叫news,好我们都在这搜,然后呢点一个build来把这个搜索操作。
14:27
我们来构建出来好。这是呢,构建咱们这个搜索功能这一块呢,是咱们这个查询表达式。那么构建出来以后呢,我们还是一样用just来执行就行了。我们使用client。第二,执行把这个搜索放进来,同样surround with,这个执行完以后呢,会为我们返回一个search result,拿到这个result呢,我来给大家输出一下result,点一个我们看到呢,这列出了非常多的这个方法,比如能获取到命中的记录,还能帮你转成需要的这个类型,而且呢,能获取到我们相关性的最高得分总记录数等等等等,我呢就不调这么多了,我我就调一个to杰森啊result.get杰son string,好把他的这个JS字符串打印一下就行,来看搜索的结果对不对。
15:38
哎,我们看到呢,它打印的这串string,然后呢,我们来找his,找到了一个相关性得分max score啊,0.25816等等等等得到的这条记录,一号啊,一号在这个S里边,就咱们这个员工信息,张三他呢说明搜索到了,那么这个client基本的使用模式我们就给大家演示了一下,那更多详细的功能呢,大家就可以参阅它的官方文档,哎,我们在giar have下找到这个项目的地址啊,我们来找just,好。
16:13
就是我们这个项目,我们来找document,哎,这个文档,大家来看这个文档就行了。
我来说两句