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

Elasticsearch倒排索引

时间:2025-01-07 11:29:34浏览次数:3  
标签:文档 词条 倒排 索引 搜索 Elasticsearch id

正向索引


我们先来回顾一下正向索引。

例如有一张名为tb_goods的表:

idtitleprice
1小米手机3499
2华为手机4999
3华为小米充电器49
4小米手环49

其中的id字段已经创建了索引,由于索引底层采用了B+树结构,因此我们根据id搜索的速度会非常快。但是其他字段例如title,只在叶子节点上存在。

因此要根据title搜索的时候只能遍历树中的每一个叶子节点,判断title数据是否符合要求。

比如用户的SQL语句为:

select * from tb_goods where title like '%手机%';

那搜索的大概流程如图:

综上,根据id精确匹配时,可以走索引,查询效率较高。而当搜索条件为模糊匹配时,由于索引无法生效,导致从索引查询退化为全表扫描,效率很差。

因此,正向索引适合于根据索引字段的精确搜索,不适合基于部分词条的模糊匹配。

而倒排索引恰好解决的就是根据部分词条模糊匹配的问题。

倒排索引


倒排索引中有两个非常重要的概念:

文档(Document):用来搜索的数据,其中的每一条数据就是一个文档。例如一个网页、一个商品信息
词条(Term):对文档数据或用户搜索数据,利用某种算法分词,得到的具备含义的词语就是词条。例如:我是中国人,就可以分为:我、是、中国人、中国、国人这样的几个词条
创建倒排索引是对正向索引的一种特殊处理和应用,流程如下:

将每一个文档的数据利用分词算法根据语义拆分,得到一个个词条
创建表,每行数据包括词条、词条所在文档id、位置等信息
因为词条唯一性,可以给词条创建正向索引
此时形成的这张以词条为索引的表,就是倒排索引表,两者对比如下:

正向索引

倒排索引

词条(索引)文档id
小米1,3,4
手机1,2
华为2,3
充电器3
手环4


倒排索引的搜索流程如下(以搜索"华为手机"为例),如图:

标签:文档,词条,倒排,索引,搜索,Elasticsearch,id
From: https://blog.csdn.net/gnwu1111/article/details/144981410

相关文章

  • Elasticsearch 字段多种类型处理
    背景​ 在搜索引擎和数据存储中,高效处理多样化的查询需求至关重要。以公司名称和时间字段为例,这些字段可能需要同时支持全文搜索和精确匹配。Elasticsearch提供了多字段功能,允许单个字段展示多种行为,例如分词搜索和精确匹配。本文将分析如何利用多字段功能,处理......
  • MySQL索引原理及慢查询优化4
    背景MySQL凭借着出色的性能、低廉的成本、丰富的资源,已经成为绝大多数互联网公司的首选关系型数据库。虽然性能出色,但所谓“好马配好鞍”,如何能够更好的使用它,已经成为开发工程师的必修课,我们经常会从职位描述上看到诸如“精通MySQL”、“SQL语句优化”、“了解数据库原理”等......
  • MySQL索引原理及慢查询优化9
    背景MySQL凭借着出色的性能、低廉的成本、丰富的资源,已经成为绝大多数互联网公司的首选关系型数据库。虽然性能出色,但所谓“好马配好鞍”,如何能够更好的使用它,已经成为开发工程师的必修课,我们经常会从职位描述上看到诸如“精通MySQL”、“SQL语句优化”、“了解数据库原理”等......
  • Elasticsearch 支持哪些中文分词器?
    关注我,持续分享逻辑思维&管理思维&面试题;可提供大厂面试辅导、及定制化求职/在职/管理/架构辅导;推荐专栏《10天学会使用asp.net编程AI大模型》,目前已完成所有内容。一顿烧烤不到的费用,让人能紧跟时代的浪潮。从普通网站,到公众号、小程序,再到AI大模型网站。干货满满。学成后可......
  • MongoDB的索引和查询分析(explain)
    •创建普通索引,使用命令db.collection.createIndex({key:1})•创建唯一索引,使用命令db.collection.createIndex({key:1},{unique:true})a.语法中Key值为你要创建的索引字段,b.1为指定按升序创建索引,如果你想按降序来创建索引指定为-1即可。• createIndex()接收可选参数,可......
  • 网站优化排名:解锁搜索引擎流量的密钥
    在数字化时代,网站不仅是企业线上身份的象征,更是连接潜在客户的桥梁。然而,在数以亿计的网站中脱颖而出,让目标受众轻松找到你,并非易事。网站优化排名,即通过一系列策略和技术手段提升网站在搜索引擎结果页面(SERP)上的排名,成为了吸引高质量流量、提升品牌知名度和促进业务增长的关......
  • 6 个搜索引擎站长平台汇总
    搜索引擎站长平台站长平台是各大搜索引擎官方提供的工具,旨在帮助网站管理员优化和管理其网站表现。它不仅为站长提供了优化建议,还提供了有关搜索引擎算法调整和优化方向的相关信息,成为网站优化过程中不可或缺的资源。想要了解更多SEO优化,可以访问SEO工具、SEO优化技巧分享......
  • 黑客搜索引擎使用指南,零基础入门到精通,收藏这篇就够了
    01搜索引擎语法请使用Bing或Google搜索引擎进行搜索。1、inurl:关键字(查找包含关键字的url)用于搜索网页URL中包含特定关键词的页面。如“教育inurl:news”会找到网址中带有“news”且页面内容与教育相关的新闻网页。同理,“allinurl:关键词组”可查找UR......
  • 如何调整网站的搜索关键词,以提高搜索引擎排名和用户体验?
    在优化网站关键词时,需要考虑以下几个方面:关键词研究:使用工具如GoogleKeywordPlanner、Ahrefs或SEMrush进行关键词研究。分析竞争对手的关键词策略,找出潜在的机会词。确保关键词与网站内容高度相关,并且符合用户搜索习惯。页面优化:在页面标题(TitleTag)、元描述(MetaD......
  • Postman与ElasticSearch交互
    为了方便测试,修改ES安装路径下的config/elasticsearch.yml中的安全配置,不使用密钥访问。以下配置的enabled都改为false#Enablesecurityfeaturesxpack.security.enabled:falsexpack.security.enrollment.enabled:false#EnableencryptionforHTTPAPIclientconne......