今天来讲一下怎么安装 elasty 个色系,主要步骤的话其实跟其他的程序差不多,就是下载解压,然后启动就可以了。第一步就是下载去官网下载就可以了,第二步的话就是解压,然后第三步的话就是启动,启动的话我们来看一下, 启动的话就是分两个小步骤,第一个步骤就是切到安装陌路,然后第二个步骤是直行安装陌路下面 b 陌路下面的脚本就可以启动了。我们来看一下启动日志,启动日志的话大概就是长这个样子,就是里面有这个是大的,就表示启动成功了, 其实到这里就是已经启动成功了,已经启动完成了,然后我们也可以通过浏览器来访问,然后来验证一下是否启动成功。具体的话就是在浏览器访问这个网址端口是这个九二零零,访问这个网址之后, 然后就会显示这个内容,这个内容的话是 elast 一个色系服务器的这个基本信息。比如说这个版本就是 elast 个色系的版本,七点是七点九。然后另外的话要注意一点,就是目前如果自己要测试的话,就是最好是安装这个七版本, 因为八版本是最新版本,但是最新版本的话需要修改一些配置,这个要特别注意一下。然后然后还有就是你在命令行看他启动之后,然后怎么关闭呢?直接看着谁就可以关闭了。 今天的话主要是讲一下就是怎么安装这个伊拉斯的一个色系,然后我们下一个视频的话,就是讲一下在大码里面怎么访问这个伊拉斯的一个色系?好的,谢谢。
粉丝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 算起他的整个过程,就说一些很复杂的这个开发的这种项目,其实他也是这些功能进行,就是组合在一块,对吧?就是这个形式,所以说大家不要太 还是正常给他,对吧?是不是都很简单的,对吧?就说这些其实也是我们基础功能的,或者是基础能力的一个组织,或者是一种,就是这个增长的这个过程。只是这个 好,这就是今天跟大家分享的这个相关的这个内容,如果大家觉得这个视频对大家有帮助的话,大家可以点点关注我的视频,后续也会持续的跟大家进行这个相关技术的这个分享。好,今天这个分享内容就到这里,谢谢大家的这个观看。

今天的话给大家介绍一下 elastic 社区,就是八点零之后的这个版本向量搜索的一些新的功能和这些呃向量搜索的功能的增强给大家呃来介绍一下啊,向量搜索我们一般了解是在企业级的这个恰的 gpt 的这种应用场景里面啊,像这种向量搜索作为一个外部知识库啊, 外挂在这个大语言模型外面,作为一些外部的知识,能够实时的跟这些大型育训练模型能够结合,能够满足一些问答,包括行业级的这样外部知识库的这样的一个应用啊。 elastic 社区了解呢,就 elastic 社区一般大家都会认为他就是个全文检索的一个搜索引擎,那么八比零开始之后,他也开始支持像量的这个搜索了啊,他可以把像量搜索和全文检索啊,能够进行有效的结合起来, 形成一些很复杂的一些应用啊。今天我们就来介绍一下这样的一些这些功能啊,那么 elastic 设置它也是一个老牌的啊,这样的一个开源的一个全文检索限量检索的这样一个引擎啊。随着这个大圆模型 l l m 的这种 应用的普及,他们也加强了在大量搜索的这样一个开源的一个解决方案上,整个一个项目的话信心非常多啊,将近六点五万的这个用户啊, 所以这个项目在开源界还是有很大的这个竞争力的啊,这个小工艺也一直用这个 elastic 摄取作为外部的矢量数据库啊,之前我在视频当中也给大家介绍过啊,如何去选择这个限量数据库啊,有非常多种啊, 像量搜索的话,它的应用场景是非常多的,它不光应用在大圆模型当中,嗯,它也是可可以用在图像啊,包括 过视频啊,包括这个声音啊,他都可以通过深度学习的这些模型。 transformer 的这些模型做 in bed 向量化,然后存储在这个向量数据库里面,就是 elastic 社区里面 从八点零开始的那个项链数据库,他刚开始是支持一零二四围的这个项链,目前最新版本的话呢,他已支持到了二零四八个项链围啊,那么 elastic 社区的话呢,他也是一样啊,这个把这些 非结构化数据相量化之后呢,它通过呃相近这个 labor 的这样的个 k n n 和 a n n 的这些算法的支持啊, 那么 alex 社区里面这个两种算法他都能够支持啊, k n n 大家了解应该他是属于暴力的。这个相似向量的这个搜索啊,他精准度会比较高啊,但是他消耗的资源会比较多, a n n 的话呢,他的性能会更好啊,他的算法会更优一些啊,但精准度上面可能并呃呃跟这个 k n 有点接近,但是如果有些场景的话,它并不如 k n n 的这种算法的轻度啊。那么在 elastic 社区里面,它还有一个非常重要的一个算法的,它是可以做一些全文检索的搜索和向量召回的这个搜索的结果混排的这样的一个算法叫那个 胜负交排序的合并算法,简称叫啊啊啊啊 f 法。这个算法的话呢,也是非常关键的啊,他可以把那个向量召回和全文检索召回的这个结果及作为混排啊,回头我会给大家介绍一个例子啊, 这个啊,这个是 elastic 社区啊,他他在那个向量搜索方面的一些新功能,我们可以看一下啊,从八点零开始他就开始在支持 k n n 的这种算法啊,所以如果大家要用 elastic 社区作为呃向量数据库的话呢,他你至少要用呃八点几的版本啊,他七点几 版本是不支持的啊,这个大家要注意啊,那么在八点四版本里面呢,他他把那个 ann 的这个算法也集成到了这个限量搜索的这个 elastic 社区的这个引擎当中了啊, 八点六版本的话呢,他就进一步又加强了这个向量搜索的一些功能,八点八版本,他把原来的这个向量的这个字段的维度从一零二四最大呃增长到二零四八啊,他这个维度,所以我们在用 elastic 社区的时候,你要看一下他的这个项量的这个维度不能超过二零四八啊,八点八版本的话呢,他最大达到二零四八啊个版本个维度,他这也是这样。那么八点 elastic 社区八点八版本,他还 增加了一个我前面讲的就是政府交排序合并的一个算法,就是 r r f 的这个算法,这个算法是比较重要的啊,我给大家 介绍一下这个算法,这个算法的用法,它也是比较简单的啊,它是可以啊,因为我们了解像那个全文解锁引擎,它可以通过一个关键词啊,它在 product 关键词里面寻找啊,这个 broom shoes 啊, 当然他也是可以通过 k n n 的这种项量去寻找,当然这个项量他可以是一个图片啊,他当然他也可以是一个文字啊,他把他项量化之后,在项量的这个 product 项链里面去搜索啊,那么他 k top k 就是二十,返回二十个,那么 rank rank 的话,它也是二十个排序,它的 window size 就是一百个,一百个里面进行 r r f 的这样的一个正正负交的这样的一个排序的一个合并的一个算法,那么这个是它在八点八版本里面已经支持了啊,这个算法还是比较重要的。好,我们看看啊,举举一个例子给大家看一下。 呃,大家会有比较大的一些认知啊,一般情况下,如果向量数据库,一般他只有向量召回的这个功能啊,比如说他某篇文章啊,如果他是不相关的话呢,那他就是零啊,如果是相关的话呢,就是一, 如果是高度相关的话是二,那么如果是完全相关的话就是三啊,所以向量召回,他就是把这个文档跟你这个向量呃,这个匹配看是否 匹配是否相关,是否高度相关,他等于是这样,然后有一个准确度啊,如果回来三,那就是代表的是非常相关,但是光有些时候我们光有像量召回的话还不够,我们需要做一些关键字的文本查询啊,那么这个文本查询的话呢,他也是可以,他是就通过刚才这个 文本查询,他也是可以进行关键字匹配的,如果是完全相关的话,那就三,他等于实现啊,那么不相关的话呢,就是零,他等于好,他这个两个 搜索完了之后进行混合排序啊,那你就可以看到这个七九幺幺五七,这个排序也是三,然后六零八零四六零也是三,那么他这样他就可以把这个两个东西混排在一起再进行排序, 通过这种算法啊,那么我们就可以把原来的呃关系呃全文检索引擎跟项链搜索可以完美的结合起来,通过 rrf 的这个混排的算法啊,所以这个算法是极其重要的啊,如果我们的话没有这种算法支持的话,那么我们在很多应用场景上面, 他就会呃,你会发现有些东西可能不太精准啊,他的意思讲啊,因为关键词啊,包括一些你可以通过那个我们的领域知识进行加强的,一有人工知识,一有人工干预的这个领域知识,所以他出来的这个向量检索的这个问题就会比较准啊,就就就是为什么我们有些应用会发现这个做的不够准的,主要的原因就在这, 这个就是算法的问题啊。好,那么八点九版本里面他还做了一个非常重要的向量搜索的一个硬件指令的一个加速啊,他这个他这个里面啊,如果我们这个向量的搜索他的数量比较大,那么我们可以通过硬件指令进行加速啊,他在八点九版本里面也已经能够支持了啊, 所以的话,我们如果要用 elastic 社区作为一个销量数据库啊,建议大家用的版本的话呢,至少是在八点九版本啊,这样,嗯,那么版本的话是八点幺零,最新的版本 是八点幺零点二这个版本,那么我们至少要用到八点九这样的一个版本,因为它这个对八点九版本最高版本是八点九点二这个版本,这个版本是两个星期前发布的, 如果我们要用 elastic 设置作为项量数据库的话,那么最好是用这个版本,当然八点十这个版本他也做了一些更新,但是跟项量搜索相关性不是太大 啊。好啊,这个是一个基础知识,跟大家介绍一下啊。好,那么我们再来再来看一下,就是我们如果用下量数据库跟大模型结合,一般我们都会用呃连线作为 呃一个大模型跟外部数据库这样,呃外部时量数据库结合这样开发的这样一个框架,因为它会比较简单,而且它能支持非常多的其他的一些销量数据库啊。那么如果你是一些简单的一些基本的一些问题,你直接可以用它原来内置的叫 fas 的这样一个限量数据库就可以了。 但是如果你要支持更高阶的一些功能和一些算法的话,你可能要把图像、声音、文本、多模态进行, 呃,包括这个关键词,包括向量召回,要进行混排的这种复杂的这种向量数据库搜索支持的话,那用 elastics 是一个比较不错的一个解决方案,同时的话呢,他也是开源的,他也是开源的啊,能够免费的作为商业用途。好啊好啊,今天这个话题就跟大家就聊到这。

好,同学们,那接下来这节课呢,我们再一起来了解一下 es 当中的一些更多的概念,然后把这些概念呢与买 c 口的一个概念做一个对比。 那首先第一个概念是我们之前提到过的就是文档的概念,我们给大家讲个 es 呢,它是面向文档存储的,你数据库里边原来的一些个商品也好,订单也好,这些东西最终都可以转换成文档存储在 es 当中。 但是呢,我们没有提到一点是 es, 他的文档存储是这三个风格的, 也就是说你的商品也好,订单也好,你最终一定会序列化成 jeson 的格式。比如说我这里有一张表,那这张表里的四个数据,最后序列化成 jeson 一个以后就长这个样子,那这是 es 与数据库存主比较大的一个差异啊, 格式上的差异。好,这是文档啊,那第二个呢,是所以的一个概念, 我们的 es 里边文档肯定不止一条,会有非常非常多的文档,那这些文档呢?大家可以看一下啊,我这给出的 n 多个文档,他们的结构是有差异的, 你比如说这个文档,它里面就有三个字段,分别是 id 内幕和 a 制,那这个内幕其实是个人的名字啊,说明这是个用户的文档,对吧?那同样道理,还有这个李四,这李四他也是一个人的名字,虽然这也是个用户文档,那与他结构类似的还有这个张三 啊,那还有一个文档呢,是这种文档,你看这小米手机还有价格,那这一类一看就知道是不是商品信息,那这个也是,还有这华为,对吧?那这三种他们的结构是一样的,那这俩呢?这里边有这个用户信息,还有商品信息, 你还有这个金额信息,他这种显然是订单信息啊,所以你看这里的文档,他的结构是不一样的,那我们的所以是什么?所以就是相同类型文档的集合,那也就是说你长一样的,我给你放一起,对吧?来做一个划分 啊,比如说这里这仨呢,看一看,都是商品类型,他们呢都有 id, 有标题,有价格。好,那么这一类就是一个缩影,比如说叫商品的缩影,那这一类呢,就是跟用户信息相关的,那我们就称之为叫用户缩影,那这一类都是订单有关的,所以叫订单缩影, 那是不是有点像我们数据库里表的一个感觉呀?啊?那不同类型的放到不同的缩影库啊,放到不同的 index 里边去,那就做了一个区分了, 那他们的差别主要就是在文档结构不同吗?你这有内蒙 h, 我这是标题和价格,那这种文档 结构其实在数据库里边,我们以前叫什么?叫表结构,对吧?那在这里,在我们 es 当中,其实是叫索引的一个映射,叫麦品啊,那这种麦品呢?是索引对文档自断的约束,就是你自段名字叫什么?你的数学类型是个字母串还是数字啊?还有这种约束就是麦平了, 所以同学们可以看到我们 es 的概念与水库概念之间是不是有这种对应的关系的呀?在这呢,我专门做了一张表给大家呢去做个对比。 那经过我们刚才所说的,我们讲卖 c 扣里边的 table 就是表嘛?那表对应到我们 ys 中,其实就是缩影 啊,因为他俩其实就是数据的集合嘛,只不过 my c o table 呢,是每一行一行数据的集合,而 index 是文档的集合,就这样子的。哎,他俩是相同的一个概念啊。好,那么在 table 里边呢,有一行一行的数据,而在缩影库里是不是有一个一个的文档 document 啊?所以这两个呢,是一个对应关系啊? rule 和 document, 那只不过呢,我们的 document 呢,是 jason 风格。 那买 c 后的行里边还有一个一个的列,就 calling 叫列,对吧?比如 id nameh, 那这种列呢,最后转换为 json 以后,他就变成了 json 里边的字段,也就是 field, 所以这两个概念呢,是对应的啊。 呃,还有呢,我们的买 c 口表会有约束吗?就是约束自动名称,数据类型之类的,那这种叫 skimmer, 那在我们 e s 当中称之为叫买品映射,所以每一个所引库都应该有自己的映射吧。 我们在操作买 c 扣的时候,一般要先创建表嘛,然后在创建表的过程中是要指定 cd 门映射呀。 啊?约束?这个我的自断是什么吗?对吧?那这些创建完了,接下来是不是可以往里面去填数据了?所以呢,将来我们再去操作 e s 的时候,也是相同的道理,我们第一件事肯定是要去创建所引库, 那么要创业缩影库,你是不是得先指定将来这个约束,也就是麦平映射,约束你将来的资段长什么样子吧?好,一旦把库创建好,映射定义好了,你是不是可以往里边去添加新的文档了,或者做文档的增山改查? 所以呢,这就是我们学习 es 操作将来的一个步骤啊,先学习锁引库,还有映射的一个创建,然后再去学习文档的 cld。 好,那这些有关文档也好,表也好,这些个操作呀,那在买 c 口里边,是通过 c 口语句去实现的啊,比方说你创建一个表,是不是有建表语句,然后你去做文数据的 c l、 u d, 你是不是有这种色 like 的语句,音色 二的语句,那这些语句呢? c 口其实规定的就是它的语法,那与此类似呢,在我们 es 里边,它有一种东西叫 dsl, 那么 dsl 呢?它是一个节省风格的请求语句,也就是说你用节省去描述,你要做查询还是新增啊?还有去描述你的表的结构啊,其实也就是卖品映射嘛,是这样子的, 所以 dsl 与 c 口呢,是一样的,就是一种语法。那这种语法呢,就是描述你要干的事啊, 是 c led 中的哪一种啊?这是 c 口和 d、 s、 l 的一个关系啊。那将来在买 c 口里边,我们 c 口写好了,通过这个,我们的那个可耐克神是吧?把这个东西给他发出去。发给谁?发给买 c 口,买 c 口是不是就能处理了?那在 e、 s 当中呢?你写好了 d、 s、 l 以后,你要通过什么发出去呢?哎,我们是基于 htdp 的请求发出去的,为什么呢?因为在我们 es 里,他对外暴露的是 restful 的接口嘛,我们之前是不是提到过, 那这种接口的好处是跟语言无关,也就是说你任何的语言,你只要能发 hdb 请求,你都可以把你的 dsl 发给我,我就能处理了 啊,那么这样一来,他就彻底脱离了语言的束缚了,对吧?所以这是 c 口和 d s l 他们在发送时的一个差别啊。那到这里呢,我们就弄明白了买 c 口和 e s 他们之间的一些概念的对比和差异了,我们可以看到啊,还是有非常多的关联性的,对吧? 好,那是不是说有了 es 以后,我们就可以完全的替代了我们的麦 c 控呢? 并不是这样子的啊,因为呢,他们两个擅长的事情是不一样的,像买 c 口呢,他更擅长的是失误类型的操作, 因为失误里边有 acid 的原则,所以他是可以确保数据的安全还有一致性的啊,哎,我们讲什么隔离性等等集中。但是 es 就不行了, as 他没有失误的概念啊,所以他无法保证我们的 acid, 他更擅长的是数据的搜索分析和运算, 所以呢,他们两个是各司其职的。如果说你现在做的是一个下单付款这样的业务,他对事务要求很高,数据的安全性一致性要求很高,你就应该使用买 c 口去做数据存储, 但是现在你做的是一个商品的搜索或者页面的搜索,那么这种搜索比较复杂,那你肯定是使用 es 去做,对吧? 所以他们两个是一种什么呀?互补,而不是说替代关系啊,那因此在我们将来的系统架构当中啊,两个都会存在 啊,你比方说吧,现在呢,我们的用户来做一个商品或者订单的一个查询,对吧? cled 啊,那么他的 cled 操作访问到我们的服务器以后,我们的服务器就可以做出一个判断了,是吧?你现在要做的是增山改这样的写操作吗?那如果是,我就把它写到我们的 买 c 口当中,那这样呢,我们数据是不是就比较安全了?但是如果你现在做的是毒操作,你要做查询呢?那我肯定建议你去 es 中去做一个搜索,因为 es 搜索能力是不是更强一点?那也就意味着什么呀?你这两个里边是不是都得有数据? 比方说我这写了一个订单,或者写了个商品,你这两边都得有啊,那怎么确保两边都有呢?那我们一般写是写在买 c 扣当中的啊,但是我们买 c 扣呢,它可以给予某种方式,将来我们也会学习啊,去把数据同步给我们的 yes, 从而实现一个数据的双写,那么将来读呢,或者说复杂搜索都从那个 eso, 那么他们俩就起了个互补的效果了,这是我们将来的一个架构啊,那同学们应该能够理解吧。行了,那我们最后做个总结, 那么这一刻呢,我们主要学习了一些概念啊,比如说文档,我们讲一个数据,就是文档,只不过呢,在 es 中,它是 g 三格式的,而字段呢,就是 g 三的中的一个一个的字段啊,那字段呢,会 约束,那这种约束呢,我们称之为叫买品啊,或者叫映射啊,他就是约束你这个自断数据类型,自断名称等等信息的。而相同类型的文档呢,我们称之为叫缩影啊,同种类型文档集合称为缩缩影,英文是 index。 好,那么最后呢, es 与水库的关系啊,他是一种互补关系,水库啊,买 c 口负责这个事物操作啊,写操作,而 es 呢,负责海量数据的搜索分析和运算 啊。当然了,不是说我们以后所有数据都这么做啊,就是对于这个业务量比较大,然后呢,搜索需求有比较复杂的场景,你才需要去实现,这两个库里都去写,但是一些简单的查询, 你根据 id 查询之类的,那你就还是用数据库没问题,对吧?所以说呢,我们不是说一个技术,学了永远 就用这个技术啊,大家要学会在合适的场景下选择合适的技术,没错吧?好了,那我们这节课内容就到这里。