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

news2024/11/15 15:31:14

今天 我们来说说 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.coloradmin.cn/o/1410132.html

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

相关文章

2023年AI大模型:从科技热潮到商业变革

出品:新商纪,作者:独孤依风 2023年,大模型技术在全球科技界掀起了一场风暴,引发了科技巨头们的激烈角逐。这一年,大模型不仅重新定义了人工智能的边界,还催生了跨行业技术革新。 根据IDC的预测…

年少不知 Base 好,错把总包当成宝。。

今天聊一个很现实的话题:选 offer 对比薪资时,我强烈建议以 Base 为主,而不是总包。 为什么?且听鱼皮娓娓道来。 注意,以下为个人观点,仅供参考! 首先明确 Base 和总包的概念: Base&…

使用PowerShell命令行,批量修改文件编码

目录 ■前言 ■PowerShell命令 ■效果 ■前言 今天统计修改代码量,使用工具时,发现有些代码无法统计。 原因时UTF-8中有某些特殊字符,工具不能识别。 但是,如果把代码转换为SJIS格式,就能正常统计了。 因此&…

猫头虎分享:已解决RuoYi-Vue3 项目代码生成器默认生成代码使用的Vue2模板代码问题与Vue2升级到Vue3解决方案

博主猫头虎的技术世界 🌟 欢迎来到猫头虎的博客 — 探索技术的无限可能! 专栏链接: 🔗 精选专栏: 《面试题大全》 — 面试准备的宝典!《IDEA开发秘籍》 — 提升你的IDEA技能!《100天精通Golang》…

HCIP-11

生成树协议: 企业网三层架构---》冗余----》线路冗余---》二层桥接环路 导致问题: 广播风暴MAC地址表翻滚同一数据帧的重复拷贝以上3个条件最终导致设备工作过载,导致重启保护 生成树:在一个二层交换网络中,生成一棵…

Python之数据可视化基础

目录 一 JSON数据格式转换 二 pyecharts模块 三 Pyecharts入门 四 数据可视化之疫情折线图 一 JSON数据格式转换 什么是JSON? JSON(JavaScript Object Notation)是一种轻量级的数据交换格式。它以易于阅读和编写的方式来表示结构化数据。JSO…

Linux:Bash中变量的定义与使用

相关文章 Linux专栏https://blog.csdn.net/weixin_45791458/category_12234591.html 在bash shell中,变量(variable)是参数(parameter)的一类,用于存储值,且变量还可以拥有属性(attributes),这通过bash内建命令declare来完成。 一…

Python 第四十三章 MYSQL 补充

多表查询 1.笛卡尔积:将两表所有的数据一一对应,生成一张大表 select * from dep,emp; #两个表拼一起 select * from dep,emp where dep.id emp.dep_id; #找到两表之间对应的关系记录 select * from dep,emp where dep.id emp.dep_id and dep.name技术; #筛选部门名称为技…

springboot优雅停机

import org.springframework.context.annotation.Configuration;import javax.annotation.PreDestroy;Configuration public class DataBackupConfig {PreDestroypublic void backData(){System.out.println("开始备份..."System.currentTimeMillis());System.out.pr…

基于springboot留守儿童爱心网站源码和论文

随着留守儿童爱心管理的不断发展,留守儿童爱心网站在现实生活中的使用和普及,留守儿童爱心管理成为近年内出现的一个热门话题,并且能够成为大众广为认可和接受的行为和选择。设计留守儿童爱心网站的目的就是借助计算机让复杂的管理操作变简单…

如何实现无公网ip远程访问本地websocket服务端【内网穿透】

文章目录 1. Java 服务端demo环境2. 在pom文件引入第三包封装的netty框架maven坐标3. 创建服务端,以接口模式调用,方便外部调用4. 启动服务,出现以下信息表示启动成功,暴露端口默认99995. 创建隧道映射内网端口6. 查看状态->在线隧道,复制所创建隧道的公网地址加端口号7. 以…

数据结构奇妙旅程之二叉树题型解法总结

꒰˃͈꒵˂͈꒱ write in front ꒰˃͈꒵˂͈꒱ ʕ̯•͡˔•̯᷅ʔ大家好,我是xiaoxie.希望你看完之后,有不足之处请多多谅解,让我们一起共同进步૮₍❀ᴗ͈ . ᴗ͈ აxiaoxieʕ̯•͡˔•̯᷅ʔ—CSDN博客 本文由xiaoxieʕ̯•͡˔•̯᷅ʔ 原创 CSDN …

【推荐100个unity插件之16】3D物品描边效果——Quick Outline免费插件

文章目录 前言地址介绍使用例子完结 前言 关于3D描边,其实之前有用shader弄过一个:【实现100个unity特效】shader实现3D物品闪光和描边效果 但是很遗憾的是他不支持URP项目,所以现在推荐这款插件,他能很好的支持URP,…

每日一题 2859. 计算 K 置位下标对应元素的和(简单)

每次有空做每日一题,都碰到简单题。。。。。。 class Solution:def sumIndicesWithKSetBits(self, nums: List[int], k: int) -> int:ans 0for i in range(len(nums)):cnt 0t iwhile t > 0:cnt 1 if t & 1 1 else 0t >> 1ans nums[i] if cnt…

嵌入式工程师如何写好技术文档

嵌入式方案设计文档该怎么写?你是不是从来没有想过这个问题?今天就来分享一篇优秀的文章: 很多技术人自己非常轻视技术文档的书写,然而又时常抱怨文档不完善、质量差、更新不及时…… 这种在程序猿间普遍存在的矛盾甚至已经演变成…

【LeetCode】222. 完全二叉树的节点个数(简单)——代码随想录算法训练营Day16

题目链接:222. 完全二叉树的节点个数 题目描述 给你一棵 完全二叉树 的根节点 root ,求出该树的节点个数。 完全二叉树 的定义如下:在完全二叉树中,除了最底层节点可能没填满外,其余每层节点数都达到最大值&#xf…

电工必备:故障电弧探测器安装方式

故障电弧探测器可以对故障电弧(包括故障并联电弧、故障串联电弧)进行有效的检测, 当检测到线路中存在引起火灾的故障电弧时,可以进行现场的声光报警,并将报警信息传输 给电气火灾监控设备。 故障电弧探测器适用于工…

Python连接MQTT服务器订阅和发布主题-Python物联网开发

一、前言 在物联网开发中,掌握MQTT可以说是一项必备的技能,要使用Python连接MQTT服务器、订阅和发布主题,我们需要导入paho-mqtt库。 二、实现代码 在之前的文章中,我们也介绍了JAVA是如何连接MQTT服务器实现发布和订阅主题的功能…

详细介绍node中动态数据内容的压缩应用

未使用 compression 压缩文件时 代码演示: const express require("express"); // 在node express框架当中,对node express框架进行一个引入const app express(); // 利用express()调用,对实例化对象进行获取app.get("/&q…