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

news/2024/12/22 11:06:48/

今天 我们来说说 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.ppmy.cn/news/1330927.html

相关文章

Linux 快速上手

Liunx 不同的操作系统 Linux、Unix、Windows…Linux的不同的发行版本: debian、ubuntu、deepin、rethat、centos、fedora等等 Linux系统安装 可以参考我的安装Linux系统的文章,或者看网上找下安装步骤 Linux命令 命令行基础操作: 1. 命令行 [rootl…

物联网与智慧城市的无界未来:如何打破传统束缚,开启智能生活新篇章

目录 一、物联网:连接万物的技术革命 1、物联网的发展历程 2、物联网的核心技术 二、智慧城市:未来城市的蓝图与挑战 1、智慧城市的蓝图 2、智慧城市建设面临的挑战 3、应对挑战的措施 三、物联网与智慧城市的融合:打破传统束缚&…

2024 年入局大模型:是否为时已晚?

随着技术的不断发展,大模型(例如GPT-4)在自然语言处理等领域表现出色。然而,随着时间的推移,一些人可能会质疑在2024年入局大模型是否为时已晚。本文将探讨这个问题,并提供观点和观察。 2024年,…

深度了解TCP/IP模型

网络通信是现代社会不可或缺的一部分,而TCP/IP模型作为网络通信的基石,扮演着至关重要的角色。本文将深入探讨TCP/IP模型的概念、结构及其在网络通信中的作用,为读者提供全面的了解。 一.TCP/IP模型简介 TCP/IP模型是一个网络通信协议体系&a…

数据结构编程题:Phone List

题目描述 Given a list of phone numbers, determine if it is consistent in the sense that no number is the prefix of another. Let’s say the phone catalogue listed these numbers: 段落大意:给定一组电话号码,判断它们是否一致,即没有一个号码…

Node.JS CreateWriteStream(大容量写入文件流优化)

Why I Need Node.JS Stream 如果你的程序收到以下错误,或者需要大容量写入很多内容(几十几百MB甚至GB级别),则必须使用Stream文件流甚至更高级的技术。 Error: EMFILE, too many open files 业务场景,我们有一个IntradayMissingRecord的补…

【Go学习】Ginkgo测试框架学习实践 + 问题记录 + 怎么解决(0)

1、ginkgo测试框架介绍:https://onsi.github.io/ginkgo/ 2、重点是学习实践 问题记录 怎么解决 3、送福利:国内好用的ChatGpt有很多,比如:天工、文心一言、讯飞星火、通义万相等 1. 安装 xxxmacdeMacBook-Pro-3  /Volumes/mac…

51单片机8*8点阵屏

8*8点阵屏 8*8点阵屏是一种LED显示屏,它由8行和8列的LED灯组成。每个LED灯的开闭状态都可以独立控制,从而可以显示出数字、字母、符号、图形等信息。 8*8点阵屏的原理是通过行列扫描的方式,控制LED灯的亮灭,从而显示出所需的图案或…