昨天我们讲了怎么安装这个 elastics, 今天我们来讲一下怎么运行这个车子代码,主要是把这个车子代码跑起来之后,然后就是怎么创建,所以怎么写收据,怎么查收据。 首先我们在运行单码之前要先安装这个与劳斯体的社区服务器,并且把它提供起来,这个上次视频已经讲过,然后就不讲了。然后接下来我们把单码提起来,这个是测试单码,这个是单元测试方法,我们直接就是右键执行就可以运行项目。 然后单码的话执行的几个主要步骤,第一个是创建,所以创建,所以是在哪里创建的呢?在这里创建,在执行这个单元测试方法的时候,他会先,他会先执行这里,然后然后会先创建,所以然后第二步的话是写数据, 写数据的话是在这里就是这里会写数据,这里就是会写数据,这里是数据,数据的话是对应的这个类,那这些是类的自断。我们这里就是组装数据,先组装的这些数据,然后 然后执行这个写数据,然后最后一步的话就是查数据,查数据的话就是根据关键字来查数据,我们来看一下,我们来看一下这个查数据的代码,这里是查数据,然后查了,然后查的时候就是主要是根据这个关键字来查, 关键字是哪一个呢?就是这个家宝这个关键字最含大码,是查询条件,主要是这个查询关键字,然后查询关键字的话主要是这个, 然后我们的数据员的话是刚才这里这里拼装的就是多条数据,然后有的,然后有的数据的话是包含了这个加瓦关键字的,比如说这个数据,这个数据就是七 中有几条数据包含了这个家暴关键字,我们执行这个单元测试方法之后,然后这里会执行成功,就是这里可以根据关键字查询到数据,然后这里会断言就是你查到了几条数据,我们刚才可以看到就是有三,其中有三条数据包含了这个家暴关键字, 然后所以这里就是断言是三条数据就是成功的。然后另外的话我们也可以通过这个可视化界面来看下这个锁影,还有这个数据,这个是可视化界面,点这里的话,点这里的话可以查看锁影,这里就是列出来的所有的锁影,这个锁影的话是我们自己创建的锁影, 这个是所有的名字,所有的名字是来自大马里面就是来自这里,这里是所有的名字,然后点击这个所有的话,可以看到就是这个所有下面的所有的这个数据记录。我们点击一下可以看到这个 原始数据,比如说这一行他包含了这个加老关键字,就是每条数据,这个是原始数据啊,这个是原始数据之段的值,名字之段、日期之段,还有关键字之段,这个和这个实体内是对应的,就是有这些字段,然后其中有个字段是关键字时代, 这个是关键字字的,然后这条记录的话,它是包含的两个关键字,然后其中一个关键字是加网,然后这个也一样,这个包含了三个关键字,这个也包含了加网关键字,然后这条数据的话,然后这一条数据的话,它关键字就没有包含加网,我们也可以在这里查询,这里选择这个,所以, 然后这里就是点这个搜索查询,搜索之后这里就是列出来的所有的这个,所有的这个记录,这里也可以就是选择这个关键字来过滤,然后这里填关键字,然后这里再点搜索, 可以看到有四条这个记录包含的这个家的关键字。我们刚才在大马里面说的是有三条,但是这里为什么有四条呢?原因是因为我们这里加了一个日期的这个过滤条件。好的,谢谢。
粉丝1799获赞2.7万

hello, 大家好,我是那个爱分享技术大数据工程师张工,今天继续跟大家分享关于这个 e s 的一些相关的这个知识。就是说对于这个 e s, 也就是咱说的这个 elastic 十二期来索性定制, 作为这个可以证明是搜索引擎这一块的一个经历,是开元这一块的一个经历,是老大哥的这个形式。当然这个但说的是这种,就是说使用的这种领先性来说,当然与他相比较早这个塑料其实就是他是一个前辈的这个形式。 而这个伊莱斯这个十二期历史,他的这个文档搜索,就是说对于我们整个的这个历史,这个搜索的这个引擎功能来说,他其实是非常这个重要的这种形式。今天就是跟大家谈论的,其实就是 在这个文档搜索,所以这一块肯定是他的一些正三砍查,就是到底是如何实现的,这是肯定是我们要考虑的一个这个问题。这这个 就说今天的这个内容大致是可以分为三大类,以及咱说的这个八大这个目录的这种形式,主要就设计的一些文档缩影和这个 具体的这种增三的改查的这种形式,包括像什么是对象,什么是文档,文档这个原数据到底是一个什么样的这个东西,以及这个检索与这个文档他们之间这个关系。还有就是我们如何去更新整个文档, 以及就是相关的我们做一些这个这个奶茶的这个操作等等,这些就是你是涉及到的一些,就是说是一些基础性和这一些 常规的这个操作型的这个相关的这个内容的这种形式。首先我们来看什么是对象,就说对象 object, 其实这个在很多这个领域里面都会有说这个设计, 就是说可以认为是一种语言相关的这种形式,就是说他会记录,就是说在这个我们这个地图中他的一种数据的这种结构,就是说为了在这个网络之间实现这种传输的这种形式, 或者是为了就是我们能更好的去存储大型历史我们一般都会定一些标准的这种格式,就是这个 像这个杰森这个其实就是 java 的这个 javascrip 的一个,就是他的一个对象的这种形式,就是一种就是可读的这种以文本形式来去表示对象的这个表示方式,相当于是他已经是就 就是现在这个 no circle 这个时间里面作为一种数据交换的一种,是四十的这种标准,就是说当对象被序列化为这个健身之后,就是他就成了这个健身这个文档了,就是健身的这个 document elastic surge, 它是一个分布式的这种文档的这种存储引擎,相当于是它可以实时存储并且去检索复杂数据的这个结构,就是说通过这种序列化 g、 s, n 的这个文档形式,你说我们就可以在这个网络之间来进行这个传说。 换句话说就是说一旦文档被存储在这个 ust 的设计之中,现在是他就可以在机群中的这个任意一个节点都可以被解锁到。当然就是说我们不仅需要存储数据,现在是 不要就说快速的去批量的这种查询,虽然是已经是有很多的这种叫 no circle 的这种解决方案,问题是他允许我们以这种文档的形式去存储这个对象, 但是他的性历史他其实依然是需要考虑我们应该如何去快速去查询这些数据地方。 当这个数据量比较少的时候,对于大部分的这种数据存储的这个钥匙来说,他做这个指甲奶茶都比较的这个溶液, 但是对于当这个数据量到了一种含量的这种程度之后,肯定是涉及到的一些好多就是就会涉及到一些各种各样的问题,我查询缓慢啊,可能会有内存溢出啊等等这种相关的这个问题,就是说那么如何能够快速被解锁以及在解锁之上进行各种操作,那就显得就是尤为的这个重要。 在这个 usb 设计之中认识每一个字段,他的这个数据默认都是被这个缩影的,相当于是我们如果使用这个像 msl 之类的就应该知道就是像逐渐他就是默认缩影的,而这些普通的字段默认是不缩影的, 如果我们某些字段经常被使用为了加速,就是我们这个相关搜索的这种功能,就是我们可以就是说是对这些列进行这个添加这种缩影, 当然天所以可以加快相关的这种减速的性能。换而言之就是他会带来一些这个问题,表示我写入的时候会有一定的这个 比这个不加可能会变慢,而且就是我加了之后就说他整个的这种结构,当我对他进行一些真改的时候,可能会有一个额外的这种影响,对吧?而且是非常不建议现在去使用 每个钻都加这个缩影,因为当缩影过度的时候,你再对这个像水库之类的这种去进行这个修改和这个插入的时候,就会特别的这个缓慢,请你使这,请你使是这个与这个缩影相比,他你是一个典型的这个区别的这种地方。 而在这个 instinct 这种形体时,它就可以基于这种默认 dob 所引,或者是我们可以根据我们的这种需要来进行设置所引的这种情况。 心理意识就可以在同一个产品中心理事利用所有的这种反向缩影的这种功能性意识,以这种快速的这种效果,心理意识返回命中的这种数据, 这是相对意识。之后我们来看一下是什么是这个文档,就是说程序中大多数的这个实体或者是这个对象相对意识,他能够被序列 用华为就是咱说的这个对象,对吧?像这里有这个 k 就是他,其实就是这个字段或者是这个属性的这个名称,而 val 其实就是这些名称,他说对应的这个值,当然可有可能是正常,也有可能是数字,当然有可能是别的这个对象, 就说基于这些形式的钥匙性历史,我们通常可以认为就是这个对象和这个文档他其实是一种互通的这种关系, 不过其实他们之间还是有一定的这个差别的。对像 object 的形式,他是可以认为是一个尖丝的这种结构体,类似于像哈西哈西、 map 字典、 qq, 或者是这个 关联速度等相关的这种形式,而对象也是他可爱还可以包含,就说其他对象也是一种欠套的这种 形式。在 elastic 算计之中,文档 document 这个术语,它是有它独特的这种含义,相当于是它其实是指最顶层的这种结构,或者是这个 root object, 就是这个跟对象的这种学化建设的形式的。这个 每一个这个对象性历史,他都有唯一的这种 id 性历史下行 id 嘛,对吧?那其标识存储在 elastic 设计之中的这个对象形式 之后,是这个文档的这个原数据,一个文档它不只是只有这个数据,相当于是它还包含了这个原数据 meditate, 就是说这个 midi 呢?它是存储了一些包含关于这个文档的这种信息,那么就是说这个原数集体店里面,它其实至少是有这个小型 dex、 小型 tam 和这个小型 id 分别 代表着就是我这个文档存储的地方,文档代表的这个对象的这种类,以及文档的这个唯一的这个标识。 我们首先来看这个下面 index 就是这个缩影,缩影它类似于是关系的数据库里面,现在是数据库里面去我们去构建存储和缩影关联数据的这个地方。事实上就是说我们的这个数据被存储和缩影在分片杀的之中, 所以他其实只是一个把一个或者是多个分片分组在一起的这种逻辑的这种空间。 然而就说这其实只是一些这种内部的这种细节性历史,我们这个程序其实是完全不用考虑分片的这种功能的。当然如果是一些更加就是贴近贴近这种比较核心的,或者是那些就是需要 考虑,就是不同分片之间的这个区别,以及这个分片之间我们如何去精确去访问,能够分片的时候那肯定是要考虑的,对吧?就这个但是对大部分的功能来说其实是不用考虑的, 我们将这个 instagment 为我们创建这个缩影,就说我们唯一需要做的仅仅是我们定义一个缩影的这个名称,就是说这个名称其实必须是要全部小写的,而且不能以这个下键开头,而且还不能包含逗号, 就说让我们我们可以以这种 one side 作为这个例子,心里是来构建一个缩影的这种形式,之后是相信 type, 就是说在这个应用之中,心里是我们可以使用对象来去表示一些这个事物,表示一个用户,对吗?或者是一篇不 顾客,或者是一个讨论,或再或者是有点等等等等,这些都是可以的。就是说每个对象他都有属于他的一个这个类,就是 plus, 就说这个类他定义了属性与对象之间关联的这种数据,这就是给我们的变成一个加上呀,或者是干啥的,这里面都有这个 class 和就是咱说的这个 class 和这个 object 的这个定义的这种形式,以及像类和类的这个对象,对吧?在这个关系引用数据部之中形式我们经常性的是将这种相同的这个类的这种对象存储在一个表的这个里面, 因为他们是有着相同的这个结构。同理就说在这个 es 这个设计中心意识我们也可以使用相同的这种类型 type, 这里是八,就是属于某一个类的这种分门别类, 对吧?把就是说是整个一个大的这个缩影,是库里面的这个形式,不同类型的这个形式,这个缩影现在也是分成不同的这个类比形式,因为他们的这个续集,就是说这个类别之内的这个缩影形式都可以定义成相同结构的这个形式。 每个类型群里是他都有自己的这个映射,或者是称为这种定义结构,定义的这种形式,就像传统数据库表中的这个列的这种一样,所有类型下的这个文档他被存储在同一个所以之中。 但是类型的这种映射, my pin 你会告诉我们这个 elastic search 它不同的这个文档到底是如何去缩印呢?而这个下面 type 它的这个名字就是可以大写,也可以是小写,但是不能包含 下划线或者是这个逗号,就这个之后是这个项目 id, 下行 id 就是他仅仅是一个独串,就是当他与这个项目一代和这个项目 type 组合的时候,就可以定义我们这个搜索库里面的这个唯一标识的一个文档,就是 我们是具体哪个锁引库下面的哪个类型,下面的哪一条数据,或者是哪一个文档。当创建一个文档形式,什么叫就可以?我们可以自定义相信 id, 当然也可以让这个 ust 设计帮我们生成,生成的话它就是类似于是 you id 之类的这个形式, 就是说自动生成的这种 id, 它是有二十二个支付长度,就是包括有就是它是 url 这个 safer 的安全呢,具备四六十四变 编码的这个形式,或者是同一只 u i d s, 其实就是一种 u i d 的这种样式, 之后是我们要看我们如何去检索文档的这个一部分,通常该的性率,请求性率就是他会返回文档的这个全部之段,当然还有一些这个约束率的这种形式, 基于这些形式那时我们就可能感兴趣,就是对于我们整个水库来说,每个可能字段都非常的多,但是我们可能只需要记录部分的这个数据,那么就是我们如果想请求个别的这段,就我们就可以使用这个下面 sos 这个参数, 多个子弹可以使用逗号来去分隔形式,类似于是下面这样的一个这种请求的这种形式,就是说如果我们只想要抬头和 test 这两个例的问题,我们就可以指定,我只要 这个橡皮 south 这你是对应这两个列就行了。之后他给我们返回的这个结果里面橡皮 south 这个钻里面就会,至于把魂就是指挥包括这两个钻的这个内容,橡皮 south 这段线内形是基于这个形式,就是说 当然如果你是只是想得到这个像 insos 钻,而不想要别的这个元素,建立时我们也可以记住一些,就是指没有这个定的只只是带这个参数,对吗?他就给我们返回这个所有的这个 so insos, 也就是原数据的这一块儿的这个内容,就这个 这个就是我们这个文档库里面呢可能有很多的这个数据,那么我们如何去检索这个文档它是否存在呢?就说如果我们只想判断它是否存在而不管,而对它的这个内容好 不关心的化学历史,我们就可以使用嗨的这种方式来去代替这个 get。 就说嗨的请求性历史,他不会返回这个形体性历史,他只有埃及 tgb 的这种头, 就是那时我们可以记住就是这个 i x 杠 x x 还在这种形式,我们可以去检索,就是我们这个外面塞的这个库,下面这个 blob 这种类型之内的这个 id, 相应 id 就是逐渐等于一二三的这个心里是这个这个 document 的,或者称为这个文档它是否成这样, 如果返回两百 ok 的话,代表的是存在。反之就如果返回四零四 not form 的话,就代表着是不存在,这是它的一个这个形式,其实就相当于是我们的是 easterns, 对吧?是否是这个库里面是否是有这条文档?这是 是这个判断的这个形式。再一个就是更新整个文档,就是说文档他在这个 elasu 帅气中是不可变的,其实其实我们是不可以修改它的, 如果我们需要更新已经存在的这个文档,其实我们可以使用这个 intex 这种 api 来去重建,所以其实重建或者是这个替换掉, 就是说在这个选择中心里是我们可以看到 elasteger 其他的这个 version, 就说 version 代表着我们这个数据的版本,就比方说在这这个 put 这个形式,就说这是这个值, 之后就说我们就基于这个查看他这个当时我们执行这个铺的表过去修改这个值的这个样式的水平,历史会有这些纸把这些重置给他,那么就是说我们如果看到这个下文件纹饰,他其实是二而 不是一,就是说代表着就是我们已经对他他的版本已经是进行了这个修改,也就是他是一个二版本的这种形式, 就是说 created, 就是说对于这个分析式我们就可以看见,就说他也还有一个这个表示,就是说 ct 的标识为 first, 就是因为我们同这个同,所以同类型下面他已经是成了这个代表着就是我们不是新建的这种形式,而是 this 展示的这个 update 这种形式,就是说如果是第一次这里面没有第一次执行这个性历史,他这个就是这个出的这种形式,就代表着我这只是新建了一条这个缩影,这是这个形式, 就是说在这个内部 elastic soil 进行率是它已经标识旧文档为这个删除, 就说添加一个标识,就是说这个版本相当于是是一种删除的这个状态,并且添加了一个完整的这个新文档。旧文档他其实不是立刻去删除掉的,就说但是我们也是防不到的。 elastic sorri 进行历史会在我们后续进行,所以更多的数据的时候,他会就就用的这个机制去触发删除这些数据。 update 的 api 相当于是似乎允许你修改文档的这个局部。但是这个 elastic sorri 他追寻之前来说的这个相同的过程,他其实是 先从这个旧文档里面检索箱子这个内容,修改它删除旧文档,然后是缩影新文档,其实就是把老的干掉,再加一条新的这个形式,只不过它会标记你这个不是新建的这个状态唯一的这个不同就是这个 up 的 ipi 相当于是完成这一过程,相当于是它是只需要一个客户端请求就行了,而且呢是不再需要 get 和这个 index 这种请求,相当于是这是它的这个区别的这个地方 之后是创建一个新文档,就是说对于我们相应的这个,当我们去索取一个文档的时候,你是我们如何确定?就是说我们是创建了一个新的文档,还是覆盖了一个这个旧的文档呢?像刚才那个 credit 的,其实我们就其实就是可以很好的这个判断地方。 然后就是说基于刚才的那些现在我们知道 index、 tabid 形式的这三者组合在一块儿,可以唯一确定一个文档,就是说如果我们想保证文档是新加入的,就说最简单的这个方式形式,我们就使用 pose 方法让 elastic surry 很自动给我们生成一个 这个唯一的 id, 那么我就说我们每一次写入他的这个 id 都不一样,历史都是一点新插入的这种效果。然而如果我们想自定义 id 的欢迎历史,我们就必须告诉依赖这个设计就是说是应该者在这三者都不相同的时候才能接受这个请求。 为了做到请律师这两点,请律师其实他必须要做同一件事情,就是要你可以选择执行的这个方式。 第一种方式就是我可以使用 o p 特效,因它不能差异那种参数,就是说来去判断它到底有没有,之前有没有存在过,对吧? 这个就是我们可以使用这个 url 上面加上加下面 create 做这个端点,就其实就就是类似于是我是以一种创建的这个形式,这种进行这个表示的这种样式,如果请求 成功性历史它就会创建一个新的这个文档性历史 elixe 这个十二期历史,它就会返回正常的这个原数据,并且相应状态码二零幺 crete 的就是代表着春节成功。另外一方面,如果已经存在的话,性历史它就会返回四零九,就是 conflect 的,就是这个状态上代表着就说是, 对吧?他报的是 document 的 already exactly 的就是文档已经存在异常,就是代表着文档是已经未创建的状态码是这个四零九,就说我们可以根据二零幺还是四零九这个状态码去判断我们是否能够创建成功了。这是这个形式 之后是如何去删除文档?删除文档的这个语法与之前是类似的,就说只不过就是我们要使用这个 delete 的这种方法, 迪丽的哪个库下哪个类型下面的这个那个 id 地方如果文档被找到,相当于是他将返回二百 ok 的这种状态码,以及下面的这个响应状态这种形式就是说注意我们这个 version 这里是又增加了,对吧? 就是说我们执行 dele 的他其实并不是直接删掉了,只是说在这个地方给他做了一个标记,代表着这个文档这个状态其实是一种 dele 的这个状态。然后就是其实更新他的一个状态码,代表着我又新了一种状态形式,对吗? 如果没有找到它其实会返回这个 steins not found 这个状态码,这是它的这个形式,就是相当于这种形式,就是说我们没有发现这个钥匙,就算是没有发现其实对应的这个 version 其实它还是会 可以这个变大,就是说因为这是一种内部记录的一种形式,就是说他确保多个几点不同操作原因是他有这种相同的这种正确的一个顺序。 就说基于这种相应的这个形式,就说代表着就说我们这三个组合在一块,就说不管是有还是没有,就是他都会有相应的这个标记,这个标记代表的就是我们做了一系列的这个操作的地方,像我们这个, 因为我们先执行这个滴滴的其实这条数据他是存在的,只不过他状态是滴滴的,对吗?当我们再去执行相应的这个逻辑的时候,他现在就是就查询不到了,对吧?他就会给我们返回就是这个方的,等于这个 就是状态零四,零四这种状态就是它的这个形式。 好,这就是今天 跟大家分享的关于这个伊莱斯这个设计,对于这个文档和缩影这一块的一些基本的这个知识,涉及到这个文档,所以以及具体的这个增长改查的这形式,就是说其实我们能看到,就是说我们插入他会有插入这种成功不成功率吧?就说这个可能会影响之前是不是有 这个,就是当我们去修改的时候,可以可以说一个就是我全部修改和这个就是部分修改的这种情况,对吧?再一个就是我们这个删除他有,以及我们如何去判断 我们文档是否存在等等,这些其实都是一些非常常见的这些功能,就是这些功能其实会贯穿我们使用这个 usd 算起他的整个过程,就说一些很复杂的这个开发的这种项目,其实他也是这些功能进行,就是组合在一块,对吧?就是这个形式,所以说大家不要太 还是正常给他,对吧?是不是都很简单的,对吧?就说这些其实也是我们基础功能的,或者是基础能力的一个组织,或者是一种,就是这个增长的这个过程。只是这个 好,这就是今天跟大家分享的这个相关的这个内容,如果大家觉得这个视频对大家有帮助的话,大家可以点点关注我的视频,后续也会持续的跟大家进行这个相关技术的这个分享。好,今天这个分享内容就到这里,谢谢大家的这个观看。

hello, 大家好,我是那个爱分享技术大数据工程师张工,今天继续跟大家分享关于这个搜索,请依赖这个 search 的相关的这个内容, 今天围绕着这个权威搜索下女士来去进行这种现在相关内容的这种题目的这个探索。下面我们开始进入到这个今天的这个详细的这个内容。 首先是基于词像与这个基于全文的这个形式,所有查询的内饰他都会或多或少的就说是去执行一些相关度的这个计算,这个肯定是说的一些,就是包括像词频呐, 对吧,以及像这个逆文的频率呀等等这些这些相关的这个逻辑。但不是所有的这个查询现在是都会有这个分析阶段和一些特殊的,就是说是完全不会对文本 进行操作的这个查询,比如说像布尔啊,或者是这个 functions car 啊这种不同的是文本查询性历史,它可以划分为天历史两个这个种族来去进行这个分析。首先是基于尺项的这种查询,比如说像 term 或者是非的意思历史 这样的这种底层查询心理是他其实是不需要分析阶段的,他们对于单个词项进行这个操作。用 term 查询心理是词项,比如说像 focur, 只要就是说在这个倒拍词语中是能够查询到准确的这个词像,比如说并且可以使用像 tfidf, 就是说这种算法为每一个词像形体是他在该词就说是整个文档里面的他的这种相关度形式,来去计算他的这个 scar, 或者是在说的这个他的这个具体的 这个全关注的这个评分,记住 term 查询理是他只对倒牌所以的这个尺项去精确的这个匹配,这一点是非常重要的,他不会对词的这个多样性来去进行这个处理,比如说像圆形啊,大小写等等这些。 在这里先女士我们无需考虑此项他是如何存入到这个缩影里面的。如果是将像,比如说像大写的这个 for 或者是 bar 都有历史,所以存在于一个不分析,就是说是我们再去设计的时候,我们指定这个资料到底是分析还是不分析,对吧? 这样的这个形式里面去,它里面相对是是包含精确值的这个字段,或者是像将这个 for 或者是这个 but 它的一个缩影到一个代位相对是空格的这种分析器的这个算里面去形式两个的这个结果是它其实 都会在这个倒排,所以里面有这个 for 和 bug 这样用,它会对,比如说像这个空格分一起餐饮时,它会用按照空格形体式去进行这个切分。 而对于另外一个形式的这个形式呢,我本身传入的它就是 for 和这个 burs 形式,我们直接可以进行对它进行减速,这就是这个 pro 直接匹配的这个形式。另外一个是基于全文的这个查询, 像这个 mat 或者是这个 carry stream 这样的这个查询,它其实是高层的这个查询, 他们了解字段映射的这个具体的信息,如果查询像日期或者是整数这样的这个字段形式,他们会将查询字母串分别作为日期或者是整数来去进行这个对待。这是这样,如果查询是一个非分析 息或者是未分析的这个精确指正串的这段形式的话,肯定是他们会将整个查询字串作为一个单独的这个词项进行这个对待,就是把它做一个整体。但是如果是要查询一个已分析的这种权威这个字段形式, 他们会像你是先将查询这部串传递给一个合适的这个分析器,然后生成一个共查询的这种磁性的这个列表,就说是切分成尺项,要去一个一个的去比对,一旦组成了这种磁性这个列表, 这个查询,你是他会对每个词像来去进行逐一的就是进行自己成的这种查询,最后我听你是再将这个结果进行这个合并,然后为每个文档生成一个的女士,最终的这种相关的这个评分,整个看来就说基于全文的女士,他的这个逻辑性 显示显示比基于这个子像的是,然后更加的这个复杂。当然这个基于全文的这种形体是他也是整个关于这个缩影情,他的一个形体是非常重要的一个特色, 我们很少直接使用,就是说是基于齿像的这种搜索,通常情况下你是都是对全文进行这个查询,并非是对于单个齿像, 这只需要你使我们咨询一个简单的这种高层权威这个产品形式,就是说我们在进行这种高层查询的这个内部形式,他就会基于此项去进行底层的这个 权利是进行相关的这个搜索形式。当我们想要查询一个具有精确值的鉴定是,也就是而且还是未分析制的这种之前这种形式的形式,我们需要考虑就是我们是否真的采用这种 评分查询的这种机制,或者是使用不评分的这个查询线历史他是不是会更好一点?单词就是说这种一,基于这种单价单个的这个吃相查询历史,他通常可以有效是非一线历史这种二言问题来去进行这个表示, 所以说更适合用于这种过滤,而且这样做肯定是可以有效的去利用相关的这个缓存。比如说像我们基于这个 carry constant score, 就说以这种固定平分儿,对吧?就说不用进行这个计算 filter 进行过滤,基于这个 term 就说基于这个 dinner 和这个 famous 匹配查询 match 型女士,它也是一个核心的,这个查询型女士无论需要查询什么样的这个字段, match 查询查询女士,它都可以跟女士作为一个首选的这个查询认证方式 是他是一个高级的这种全文的这种查询,这就表明现在是他既能够处理全文的这个字段,案例是也能够处理这种精确的这个字段。也就是说 max 查询主要的这个应用场景其实就是进行这种全文的这个搜索。首先来看单个词的这个查询, 我们用一个私立性的算去解释使用这个 match 查询搜索全文资钻中的这个单个词的这个形式就是 match, 比如说 kido 等于 quicker, 对吧?形式这个其实看起来是非常的这个简单呢, 那么呢在这个 e s 美女是它执行上面这个 match 查询的这个步骤,它其实是什么呢?首先第一步就是检查自钻的这个类型,标题 title 自钻一定是是一个足串类型的,而且是一个已分析的这种权威的这个钻,那么这就意味 查询图片本身性历史也是应该是可以被分析的,只有这样性历史才能够进行这个分析,对吧?之后是要分析查询图片,将查询的这个证件 cq 传入到这个标准的这个 vt 美丽是输出的这个结果是单个项小写的,就是全小写的这个 click, 对吧? 因为只有一个,那就先提示,所以说 max 查询执行的是单个底层 term 的这个查询机制。之后先提示要查,就是说是这个查找匹配的这个文档,用 term 查询,先提示,在这个盗牌词语中查找 quick 先提示,然后去获取一组包含该词项的这个文档,比如说像 文档一,文档二或者是文档三,对吧?之后天理石要为每个文档呢去进行这个评分,用这个 tom 查询计算每一个文档它的这个相关度评 分享 it's car。 这是向女士将这个词频 franky 以以及词 quick 拍在这个文档中的这个出现的这个优势, 只出现的这个频率以及这个反向文档频率称为是逆文档频率。这个所谓逆文档频率指的是这个此在所有文档中出现的这个频率, 就是说基于这种性历史这个文档,以及在他整整体所有文档中性历史这个具体的这个表现历史来进行这个分析,以及自端的这个长度。一般来说自断越短,他的这个相关度是越高的,比如说像标题他的这个相关度是要大于这个内容的, 来去进行这些进行这个结合在一块来去详细对他进行这个计算。如果我们一次只能搜回一个词,那么这个条文搜索形式他就不太 太灵活,对吧?幸运的是这个 match 查询它也可以让多次查询变得这个简单,比如说我这个抬头直接插入这个 broom dog, 因为这个 match 查询它必须找两个词,一个是 bra, 一个是 dog, 对吧?它在那个内部实际上是执行了两次 term 的这个查询形式。 之后呢,你是要将这两次查询的这个结果合并作为最终结果来去进行输出。为了做到这一点,他将两个 tom 查询包入一个布尔的这个查询里面去。 以上的这个势力也是告诉我一个重要的这个信息,也就是说任何文档只要开头在里面包含指定词项中的这个字啊,一个词就能够进行这个匹配,而且是匹配的这个词项越多,他的这个分数就会越高,文档也就是越相关,这个是这 其实大家也能理解,对吧?就是说两段文字比如说是否相似,那么就要看他们这个里面的这个相同的这个词,或者是相近义的近义词用就是 多不多,对吧?越多可以大致去理解认为或者是他这两个更加的相似,如果一个词都没有相似的,对吧?那显然他的这个相关度就会比较的低。 之后是提高精度,用任意查询此项 pp 文档下呢,是它可能会导致结果中出现这种不相关的这个长尾,这是一种散,就是这个很大声的这个搜索, 可能我们只想搜索包含所有词型的文档,也就是说是我这里面像 brown 和 dog 形式必须这两个词都有才行,对吧?也就是说不去匹配像 brown all dog, 而是 brown 按刀先定是这其实是一种或或者是这种按的这种关系前字也是可以让我们匹配更多的这个文档,而后的前提是能让我们获取到匹配更加准确的这个文档,当然他这个结尾前提是会相应的会少很多,对吧? magic 弹性就是它也可以指定,就是我们可以接受这个 operator, 也就是操作服作为这个 solo 的这个参数, 默认情况下该操作符是 out, 当然形体是我们也可以把它修改成按的形式来上。所有的这个定词像都必须进行这个匹配, 也就是说在我们之前 carry 这个指向的这个下面,你说我们要可以制定 upside 等于这个按的提示来去修改他的这个前提是不同此项结果之间的这种关系,对吧?这个其实很好理解,在所有与这个任意二者之间。 历史选题显然就是有一点这个非黑即白了,如果用户给定五个参与词像历史,想查找只包含其中四个文档的这个历史,此项的这个文档历史,那该如何进行处理地方?将这个 opt 的圈不设置成 按的肯定是只会将这个文档来排除掉地方,而设置成 out 肯定是又会发这样的这个结果,现在是 就是这个常在这个满足数据的这种茫茫大海里面去,对吧?有时候这也是真的,这个需求也是我们期望的。 单在全文搜索的这种大数据应用场景之下,形式我们既想包含那些可能相关的文档,同时要排除那些不太相关的这个文档。换句话说,形式我们想要的是处于 中间某种结尾,就说是不要说是完全相关,或者是说是那种那些油油电相关的,全都要不是这样的情况,而是说是基于就是稍微有点相关的,我都想要这样的这个情况, 有一点中庸的这种思想,对吧?那你才给他支持这个 minimo 秀的 bright 最小匹配参数,这让我们可以指定就说是 必须匹配的这个词项数来去表示一个文档它是否相关,我们可以像你是将它指定为具体的这个数字,当然这个其实不好控制,对吧?因为有的长,有的短,有的尺数多,余的尺数少, 那么指定距离的速度显然不太灵活。而更常用的方法是指定一个百分比,比如说百分之六十或者是百分之七十,对吧?这其实是更好这个用的这个情况, 因为我们无法控制用户输入时输入的这个单词次数,对吧?这是百分比,显然比具体数字现在是有更好的这个使用。这种效果也是 当给定百分比的声音历史 minimum 修的 mark, 它会做合适的这个事情。在之前就说在前三项的这个实力中,引力时百分之七十分力时,它会自动被计算成百六十六点儿六,因为总共就三个词,对吧? 所以说无论这个词设置什么,那么至少包含一个词典给你吃,才会认为就说是他是要匹配的形式,就说是至少要有一个参数,参数这个 mimom 秀的麦吉丽舍,他的这个设置是非常这个灵魂是 我们可以根据用户输入词项的这个数目性历史来去应用不同的这个规则,具体性历史我们可以去这个 途径里面,也就是他的这个官方文档里面去查看详细的这个信息。为了完全理解就是这个麦奇他是如何去处理多个磁县的运势,我们就需要查看如何使用布尔查询历史,将多个磁山运势组合在一起, 就说到底如何去出来意见,也是我们在会在下一节的这个内容里面肯定是跟大家进行这个分享。好,今天的这个分享内容就到这里, 如果大家觉得这个视频对大家一定帮助的话,大家可以点个关注我的视频,后续将会持续的跟大家进行相关技术的这个分享。今天的这个分享内容就到这里,谢谢大家的这个观看。