首页 > 其他分享 >详解Elastic Search及架构

详解Elastic Search及架构

时间:2024-08-22 14:23:34浏览次数:9  
标签:Search 遍历 Elastic -- 详解 文本 词项 id es

前言        

        如果我有三段文本,id分别为0、1、2, 具体如下,我要找到哪段文本里有关键词es,这时最容易想到的办法就是依次遍历文本,匹配es,最后将符合的文本id输出。

        0  i like  es

        1  i love es

        2  i use devops

        上述方法在数据量小的时候非常合适,但是我有几十万上百万以及更多的数据的时候,这样依次遍历 ,速度非常慢,不适合生产使用,通过关键词搜索这个生活中非常常见,抖音搜索想看的视频或博主,淘宝搜索想购买的东西等等,通过依次遍历明显是不可能的,这时es应运而生。

倒排索引

        ElasticSearch,是一个基于Lucene的搜索服务器,Lucene原理就是应用了倒排索引,这时我们还是看0、1、2三段文本,将i like es 切分为三部分,这个操作叫分词,分词后每部分为一个词项(term);记录词项和文本id的关系,如下:

i --- 0、1、2

like -- 0

es -- 0、1

love -- 1

use -- 2 

devops -- 2      

        在我们搜索es时,就可以搜到es这个词项,通过词项去匹配文档id为0和1,这时候又有一个问题,短短三句话就有这么多词项,如果换成几千几万句话,那词项也太多了 ,依次遍历

标签:Search,遍历,Elastic,--,详解,文本,词项,id,es
From: https://blog.csdn.net/qq_59634082/article/details/141421081

相关文章

  • Static关键字详解
    Static关键字是什么static修饰的代码属于类定义的变量存储在方法区的静态常量池当中java为什么要设置static关键字?因为要方便类去使用自己的方法和变量例如:1.方法和变量上面没有static关键字packageWork1;publicclassA{publicStringname="张三";pub......
  • Redis 数据类型详解
    Redis是一个开源的内存数据结构存储系统,广泛应用于缓存、消息队列、实时数据分析等场景。Redis提供了多种数据类型,本文将详细介绍Redis的五种主要数据类型及其应用场景,并从概述、基本操作、应用场景和数据结构等方面进行深入探讨。1.字符串(String)概述字符串是Redis......
  • MySQL 数据类型详解
    MySQL是一种广泛使用的关系型数据库管理系统,它支持多种数据类型以满足各种应用场景的需求。本文将详细介绍MySQL支持的数据类型、它们的使用场景以及实现原理,并通过图示帮助读者更直观地理解。目录简介数值类型整型浮点型定点型日期和时间类型字符串类型字符串二进制字......
  • 位运算符-按位取反运算符补充详解
    位运算符在计算机中用于直接操作整数的二进制位的运算符。这些运算符通常用于低级编程和优化特定类型的计算任务。以下是几种常见的位运算符及其解释:按位与(&):对应位都是1时结果为1,否则为0。例如:0101&0111=0101按位或(|):只要对应位有一个是1,结果就为1。例如:0101|0111=......
  • 为什么用Vite框架?来看它的核心组件案例详解
    Vite是一个前端构建工具,它以其快速的开发服务器和生产优化的打包器而闻名前端界,今天的内容,必须得唠唠Vite的关键能力,以下是Vite的核心组件分析,以及使用案例:原理分析:Vite利用了现代浏览器对ESModule语法的支持,在开发环境中不进行打包编译,而是通过启动本地devServer......
  • cnhw06s.dll谜团揭秘:硬件加速支持的权威修复策略详解
    解决cnhw06s.dll文件丢失的问题,可以尝试以下步骤来恢复硬件支持功能:1.系统还原:•如果你知道DLL文件丢失前的一个还原点,可以尝试使用Windows的系统还原功能回到那个状态。2.重新安装相关软件:•cnhw06s.dll通常与某些硬件相关的软件或驱动程序关联。尝试确定该DLL属于哪个程......
  • 触摸输入故障深度剖析:tiptsf.dll修复的高级策略详解
    针对tiptsf.dll文件丢失或损坏导致的触摸输入问题,可以采取以下专业修复步骤:1.安全模式启动:首先,尝试重启计算机进入安全模式。这有助于防止加载可能干扰修复过程的第三方服务。2.系统还原点:检查是否有最近的系统还原点。通过“控制面板”->“系统”->“系统保护”->......
  • 提升代码迭代速度的Python重载方法使用详解
        概要在Python编程中,模块是组织代码的重要工具,它们使得代码更加模块化和易于维护。在开发和调试过程中,有时需要对已经导入的模块进行修改并重新加载以应用更改。Python提供了一个名为reload的模块,用于在不重新启动解释器的情况下重新加载已经导入的模块。本文将详......
  • Python代码部署之用Kubernetes实现自动化详解
    概要在现代软件开发中,容器化和微服务架构逐渐成为主流,而Kubernetes则是管理容器化应用的事实标准。Kubernetes(简称K8s)提供了自动化部署、扩展和管理容器化应用的强大功能。本文将详细介绍如何使用Kubernetes来部署Python代码,包括Kubernetes的基本概念、部署流程,以及通过示例......
  • C++ queue(STL queue,队列)用法详解
    只能访问queue<T>容器适配器的第一个和最后一个元素。只能在容器的末尾添加新元素,只能从头部移除元素。许多程序都使用了queue容器。queue容器可以用来表示超市的结账队列或服务器上等待执行的数据库事务队列。对于任何需要用FIFO准则处理的序列来说,使用queue容器适......