简述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与部分字段 这个对应关系 就是一个文档
创建无数个文档 存入 这样就会方便使用
然后就是 根据关键字 使用文档

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/645229.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C语言零基础入门第2天《 visual studio下载安装教程和搭建开发环境及踩坑指南》(保姆级图文教程)

visual studio下载安装教程和搭建开发环境 1、 项目实战效果图2、简单了解一下目前主流的开发环境3、 visual studio下载地址4、 visual studio安装教程5、 配置visual studio环境变量 6、如何新建一个C项目7、新建第一个C程序8、用代码测试创建的项目是否可用8、如何成功让代码…

bootstrap编辑回显案例

bootstrap编辑回显案例 <!DOCTYPE html> <html><head><meta charset"utf-8"><title>Bootstrap Table Edit</title><link rel"stylesheet" href"https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/4…

oracle ADG数据库开启审计

oracle ADG备库的审计只能开启的OS状态。 在把审计开到DB状态的时候&#xff0c;重启备库的时候状态又重新变回OS状态。 Completed: ALTER DATABASE MOUNT Wed Jan 24 01:56:13 2024 ALTER DATABASE OPEN Data Guard Broker initializing... Data Guard Broker initializat…

利用git上传本地文件

1、建立仓库 2.然后刷新网站&#xff0c;获取下载链接&#xff0c;备用。 3、接下来在本地创建一个文件夹&#xff0c; 4、把github上面的仓库克隆到本地 git clone https://github.com/xxxxx&#xff08;https://github.com/xxxxx替换成你之前复制的地址&#xff09; 5、把…

C# 实现 XOR 密码

XOR密码&#xff08;异或密码&#xff09;是一种简单的加密算法&#xff0c;它使用异或&#xff08;XOR&#xff09;操作来对明文和密钥进行加密和解密。 异或操作是一种位运算&#xff0c;它对两个二进制数的对应位进行比较&#xff0c;如果两个位相同&#xff08;都为0或都为…

GPT4+Python近红外光谱数据分析及机器学习与深度学习建模

详情点击链接&#xff1a;GPT4Python近红外光谱数据分析及机器学习与深度学习建模 第一&#xff1a;GPT4 1、ChatGPT&#xff08;GPT-1、GPT-2、GPT-3、GPT-3.5、GPT-4模型的演变&#xff09; 2、ChatGPT对话初体验 3、GPT-4与GPT-3.5的区别&#xff0c;以及与国内大语言模…

postman使用-09发送报告

文章目录 环境部署生成测试报告导出测试集导出环境变量导出全局变量 生成报告演示案例一&#xff1a;单一接口使用环境变量和全局变量案例二&#xff1a;单一接口使用环境变量、全局变量、CSV文件参数案例三&#xff1a;多接口&#xff0c;批量执行 总结 环境部署 1.安装nodej…

CSS文本外观属性(知识点2)

知识引入 1.text-indent&#xff1a;首行缩进 text-indent属性是用于定义首行文本的缩进&#xff0c;其属性值可为不同单位的数值&#xff0c;em字符宽度的倍数或相对于浏览器窗口宽度的百分比%&#xff0c;允许使用负值&#xff0c;建议使用em作为设置单位&#xff0c;下面通…

Docker Image(镜像)

Docker镜像是什么 Docker image 本质上是一个 read-only 只读文件&#xff0c;这个文件包含了文件系统、源码、库文件、依赖、工具等一些运行 application 所必须的文件。我们可以把 Docker image 理解成一个模板&#xff0c; 可以通过这个模板实例化出来很多容器。image 里面…

智能家居20年,从「动手」到「用脑」

【潮汐商业评论/原创】 正在装修新家的Carro最近陷入了纠结之中&#xff0c;“还没想好要怎么装一套完整的智能家居&#xff0c;家里的基装就已经开始了。” 事实上&#xff0c;Carro对智能家居也不了解&#xff0c;并不知道该如何下手&#xff0c;心想“要是能一次性设计好就…

Java实现两个Ip相互跳转

需求:在请求HttpClient时,如果访问的http://127.0.0.1:5004/proxy/1为空或者为html(看自己的需求而定),那么就跳转到http://192.128.121.140:5004/proxy/1 传入的ip1和ip2分别是127.0.0.1和192.128.121.140 private String sendRequest(String ip1, String ip2) {CloseableHt…

MyBatis详解(1)-- ORM模型

MyBatis详解&#xff08;1&#xff09; JDBC的弊端&#xff1a; ORM 模型常见的ORM模型&#xff1a;mybatis和Hibernate的区别 ***优势&#xff1a;mybatis解决问题&#xff1a;优点&#xff1a; MyBatisMyBatis环境搭建项目架构mybatis生命周期 JDBC的弊端&#xff1a; 1.硬编…

头歌C语言递归函数、嵌套函数

目录 第1关:递归求阶乘数列 任务描述 相关知识(略) 编程要求 测试说明 第2关:递归实现输出一个整数的逆序 任务描述

jenkins部署过程记录

一、jenkins部署git链接找不到 原因分析&#xff1a; 机器的git环境不是个人git的权限&#xff0c;所以clone不了。Jenkins的master节点部署机器已经部署较多其他的job在跑&#xff0c;如果直接修改机器的git配置&#xff0c;很可能影响到其他的job clone 不了代码&#xff0c…

EI论文复现:考虑冷热运行特性的综合能源系统多时间尺度优化调度程序代码!

适用平台/参考文献&#xff1a;MatlabYalmipCplex&#xff1b; 参考文献&#xff1a;电力系统自动化《含冰蓄冷空调的冷热电联供型微网多时间尺度优化调度》 提出考虑冷热特性的综合能源系统多时间尺度优化调度模型&#xff0c;日前计划中通过多场景描述可再生能源的不确定性…

1.20号网络

数据库基本概念 能够输入计算机并能被计算机程序识别和处理的信息集合数据库 &#xff08;Database&#xff09; 数据库是在数据库管理系统管理和控制之下&#xff0c;存放在存储介质上的数据集合 常用的数据库 1&#xff09;大型数据库Oracle公司是最早开发关系数据库的厂商…

大数据处理,Pandas与SQL高效读写大型数据集

大家好&#xff0c;使用Pandas和SQL高效地从数据库中读取、处理和写入大型数据集&#xff0c;以实现最佳性能和内存管理&#xff0c;这是十分重要的。 处理大型数据集往往是一项挑战&#xff0c;特别是在涉及到从数据库读取和写入数据时。将整个数据集加载到内存中的传统方法可…

opencv#33 边缘检测

边缘检测原理 图像的每一行每一列都可以看成是一个连续的信号经过离散后得到的数值&#xff0c;例如上图左侧给出的图像由黑色到白色的一个信号&#xff0c;也就是图像中某一行像素变化是由黑色逐渐到白色&#xff0c;我们将其对应在一个坐标轴中&#xff0c;将像素值的大小对应…

Pytorch线性代数

1、加法运算 A torch.arange(20, dtypetorch.float32).reshape(5, 4) B A.clone() # 通过分配新内存&#xff0c;将A的一个副本分配给B A, A B# tensor([[ 0., 1., 2., 3.], # [ 4., 5., 6., 7.], # [ 8., 9., 10., 11.], # [12., 13.,…

Linux系统创建并自动启用交换文件

在Linux系统中&#xff0c;交换空间&#xff08;Swap Space&#xff09;被用作当物理内存&#xff08;RAM&#xff09;不足时的额外内存。尽管现代计算机通常配备有大量的RAM&#xff0c;但在某些情况下&#xff0c;如运行内存密集型应用或程序时&#xff0c;交换空间仍然非常有…