简述Elasticsearch(ES)是什么 全文搜索概念 (倒排索引 管理文档)

今天 我们来说说 NoSql 中的 Elasticsearch 大家基本都叫它 ES

官方介绍 它是一个分布式全文搜索引擎

分布式是一个系统架构的概念

而 全文搜索引擎

全文搜索 可以说基本大家天天都在接触 就比如

我们京东购物 想买什么东西 在全文输入框中搜索 它就会在所有物品中 帮你找出需要的

它会将 所有的数据进行一个分类 然后 在你输入时 将与你输入内容想匹配的数据都推送出来

但 还有一个分类的概念

比如 我们只是靠name 搜索 用户搜索的 spring

那么 下图中 1 2 3 4都没有问题 但第五本书显然会被过滤掉 因为它的name 不包含内容

但是按照逻辑讲 他和 spring有关系 它应该要出现 所以 我们不能只按name查询

而 我们查询 spring 实战 那么 它们也该出来 只要能匹配上的 不管内容是否能完全一样 都要出来

这就是 全文搜搜 而 ES 就是一个全文搜索的解决方案

全文搜索 思路是 将某个内容分词

例如 Spring实战 第5版

那么 词就会被拆分为

Spring

实战

第5版

当然 也不能乱拆 就比如 我每个字母 每一个字符都拆

那用户输入什么都带出来一大片没有意义的数据

我们 我们通过关键字分组

例如 我们输入 Spring 为搜索关键字 那么 就会带出 1 2 3 4 5条数据的 数据id与部分字段内容

实战为关键字 就会带出 第1条数据的 id与部分内容字段

di5版也是 会带出第一条数据的 id和部分字段数据

就比如 进洞 我们搜素电动 他就会带出 很多关于电动物品的信息

但是 这里 每条数据都只是带出了一部分信息

当我们点击某个进去 查看详情 它其实是将你点的数据 id拿到 然后根据id再去查询详情

因为有些字段 外面展示本来就不需要呀 就比如这个视频 外面用过图片就好了 进来了再加载视频这种很大的东西 要不然 匹配出 一百个商品 还加载 一百个视频吗?

那么 就是说 全文搜索 我们先要对提供的数据进行分词 将一个文本 分词若干个关键字

然后 通过这些关键字 帮助用户匹配出符合要求的数据

这种方式 会大大提高搜索效率

还有就是 索引的概念 我们传统索引是根据id查数据

而这里 我们是根据数据得到id 这个过程叫倒排索引 然后再用id获取数据 用传统索引都OK

然后就是 我们为了更好的管理 需要提前建立关系 每个关键字 对应 某些数据 部分内容与id的数据关系 被我们称作文档

例如 Spring 关键字 对应 1 2 3 4 5 条数据的 id与部分字段 这个对应关系 就是一个文档

创建无数个文档 存入 这样就会方便使用

然后就是 根据关键字 使用文档

相关推荐
王中阳Go34 分钟前
5.27 分钟干完后端和全部测试:一场三小时笔试的五个失分点,四个不在代码上
大数据·数据库·人工智能·后端·大语言模型
演艺大赏42 分钟前
Paimon 1.3.1 报 Proxy user is not supported:Kyuubi + Kerberos 集成排查与源码级定位
大数据
财迅通Ai1 小时前
远信储能(9621.HK)招股开启,AI+储能跑出新范式
大数据·人工智能·远信储能
一只鹿鹿鹿2 小时前
智算算力、AI-芯片与产品解析(PPT文件)
大数据·运维·网络·人工智能·物联网·1024程序员节
Flynn Liang2 小时前
内存/Redis/PGVector/Milvus/ES 怎么选?Spring AI VectorStore 抽象与向量库选型对照表
redis·elasticsearch·milvus·rag·springai·pgvector·向量库
Fluxproxy3 小时前
大模型批量数据采集:AI 自动化工作流搭建实战
大数据·人工智能·自动化
sun153690275723 小时前
超声波风速风向传感器:测量原理、通讯协议与应用场景详解
大数据
国科安芯4 小时前
商业光学遥感载荷焦平面供电链的低噪声稳压器研究综述——以国科安芯ASP7A84AS型3A低压差线性稳压器为器件级参照
大数据·网络·嵌入式硬件·平面·卫星·商业航天·抗辐射
米软科技4 小时前
数字化转型:多元化集团如何构建高效的AI数字化中台?
大数据·人工智能
Leo.yuan4 小时前
Dora企业级Data Agent应用指南:存量BI复用、私有化部署与权限管理
大数据·人工智能