首页 > 其他分享 >Elasticsearch倒排索引

Elasticsearch倒排索引

时间:2023-09-15 23:23:38浏览次数:44  
标签:文档 词条 倒排 单词 索引 搜索 Elasticsearch

倒排索引是什么

倒排索引是一种用于全文搜索的数据结构,它将文档中的每个单词映射到包含该单词的所有文档的列表中,然后用该列表替换单词。因此,倒排索引在文本搜索和信息检索中广泛应用,如搜索引擎、网站搜索、文本分类等场景中。

过程

         1、将文档的内容通过算法进行分词,得到一个词条列表

         2、将词条列表当作key,包含该词条的文档id列表作为值,形成一张表

         3、词条是唯一的,所以给词条创建索引,提高搜索效率

         4、通过词条查询,得到文档ID,再通过文档ID查询到具体的文档

倒排索引的优势和特点是什么

  1. 高效的文本搜索。由于倒排索引通过单词快速定位到含有该单词的文档,所以搜索效率非常高。与传统的全文搜索方式相比,倒排索引不需要对每个文档进行扫描,因此可以在大型数据集上快速进行搜索。
  2. 支持高级搜索功能。倒排索引可以使用词间关系、词条权重等信息对搜索结果进行精确匹配、布尔运算和相关度排序。
  3. 可定制的分析和处理。倒排索引支持构建和应用自定义分析器和过滤器,可以针对不同用例和词汇集的需求灵活处理。
  4. 灵活的扩展性。倒排索引支持横向扩展,可以水平分割和复制数据,这样可以轻松地扩大索引容量和提高搜索效率。
  5. 支持分词。分词可以将连续字母或数字序列划分为有意义的词组或单个词汇,这些分词信息可以被用于构建索引,从而实现更加精确的搜索结果。
  6. 支持位置信息。倒排索引可以记录每个单词在句子中的位置,从而支持短语搜索和文本摘要等功能。

综上所述,倒排索引是搜索引擎和信息检索领域重要的技术和数据结构,在实现高效、灵活、可扩展和丰富的搜索功能方面有着不可替代的作用。

ES相关概念对比MySQL

 

标签:文档,词条,倒排,单词,索引,搜索,Elasticsearch
From: https://www.cnblogs.com/zcj-gh/p/17706118.html

相关文章

  • Elasticsearch倒排索引 与Mysql的区别
    Elasticsearch实现快速搜索功能的核心概念,从文件的内容查找,得到包含这些内容的文件列表,再得到文件对应的信息,将文档的内容通过算法进行分词,得到一个词条列表将词条列表当作key,包含该词条的文档id列表作为值,形成一张表词条是唯一的,所以给词条创建索引,提高搜索效率通过词条查询,......
  • 分布式搜索引擎Elasticsearch(1)
    ES的倒排索引倒排索引是ES实现快速搜索功能的核心概念,而倒排索引的概念是基于正向索引而言的。那么什么是正向索引呢?正向索引就是先通过文件名找到具体的文件,再获取文件中的内容过程。mysql的查询功能就是正向索引的思想,mysql查询数据时会先根据ID查询记录,再从记录中获取相关字......
  • Python基础 - 索引器,切片语法
    索引器语法:obj[key]a)一般key为int和str比较常见,但是Python下的索引器的key也可以是float,tuple,list,dict等任意对象。b)索引器会由解释器帮我们转换成对__getitem__函数的调用。 classMyTest():def__getitem__(self,key):print(type(key))......
  • Elasticsearch 命令行初识
    完整教程:https://www.cnblogs.com/shaner/p/5661071.htmlhttps://zhuanlan.zhihu.com/p/449555826http://192.168.1.10:9201/_cat/health?vhttp://192.168.1.10:9201/_cathttp://192.168.1.10:9201/_cat/indices?vES服务器命令行:----服务器命令行删除大索引curl-XDELETEhttp:......
  • boost多索引容器的使用介绍
    boost是基于C++11的被广泛使用的开源库;多索引容器实现了可以通过多个索引去查找数据,不像std::map一样只能通过单一索引key查找对应value值。多索引容器可以通过多个索引key查找对应value值。多对多的方式,有了更多的应用场景。其实现了STL的一些基本操作,如迭代器等。如下示例作......
  • MySQL存储过程、索引、分表对比
    MySQL存储过程、索引和分表是用于提高查询效率的三种不同方法,它们各自对查询效率有不同的影响和应用场景。以下是它们的对比:MySQL存储过程:影响查询效率:存储过程通常不直接影响查询效率,因为它们是用于封装查询逻辑和执行多个SQL语句的数据库对象。存储过程主要有助于减少网络......
  • MySQL索引详解(Hash、AVL、红黑树、B、B+)
    MySQL索引详解|JavaGuide(Java面试+学习指南)索引介绍索引是一种用于快速查询和检索数据的数据结构,其本质可以看成是一种排序好的数据结构。索引的作用就相当于书的目录。打个比方:我们在查字典的时候,如果没有目录,那我们就只能一页一页的去找我们需要查的那个字,速度很慢。......
  • Elasticsearch7.x - 集群部署
    目录1.软件下载2.集群部署3.创建账户4.集群搭建Linux集群搭建Windows集群搭建1.软件下载软件下载地址:https://www.elastic.co/cn/downloads/past-releases/2.集群部署多个不同的节点(es)要提供不同的端口号,将集群当成一个整体来使用。一个Elasticsearch集群有一个唯......
  • 【MySQL优化】索引失效的场景
    目录索引失效场景未遵循最左前缀匹配导致索引失效索引列参与运算索引列使用了函数类型转换导致索引失效OR引起的索引失效负向查询导致索引失效索引字段使用ISNOTNULL导致失效两列数据做比较会导致索引失效索引失效场景假设存在如下表:CREATETABLE`t_employee`(`id`i......
  • MYSQL单列索引和组合索引的对比分析
    单列索引:即一个索引只包含单个列,一个表可以有多个单列索引,但这不是组合索引。组合索引:即一个索包含多个列。怎么选择:如果查询where条件只有一个,完全可以用单列索引,这样的查询速度较快,索引也比较瘦身。如果业务场景是需要经常查询多个组合列,不要试图分别基于单个列建立多个单......