搜索引擎是如何进行查询分析的?

简介: 搜索引擎通过查询分析理解用户意图,主要进行分词粒度、词属性和用户需求分析。中文搜索需解决无空格分隔问题,采用混合粒度分词,如“极客时间”拆为“极客”“时间”“极客时间”,提升检索准确率。(236字)

一般来说,用户在搜索的时候,搜索词往往会非常简短,很难完全体现用户的实际意图。而如果我们无法准确地理解用户的真实意图,那搜索结果的准确性就无从谈起了。因此,搜索引擎中检索系统的第一步,一定是进行查询分析。具体来说,就是理解用户输入的搜索词,并且对输错的查询词进行查询纠正,以及对意图不明的查询词进行查询推荐。那查询分析具体该怎么做呢?

在查询分析的过程中,我们主要会对搜索词进行分词粒度分析、词的属性分析、用户需求分析等工作。其中,分词粒度分析直接关系到我们以什么 key 去倒排索引中检索,而属性分析和需求分析则可以帮助我们在打分排序时,有更多的因子可以考虑。因此,分词粒度分析是查询分析的基础。那什么是分词粒度分析呢?

分词粒度分析是中文搜索中特有的一个环节。因为中文词和英文词相比,最大的区别是词与词之间没有明确的分隔标志(空格)。因此,对于中文的搜索输入,我们要做的第一件事情,是使用分词工具进行合理的分词。但分词,就会带来一个分词粒度的问题。

比如说,当用户输入「极客时间」时:如果我们按单字来切分,这个搜索词就会变成「极 / 客 / 时 / 间」这四个检索词;如果是按「极客 / 时间」来切分,就会变成两个检索词的组合;如果是不做任何分词,将「极客时间」当成一个整体,那就是一个搜索短语。切分的方式这么多,到底我们该怎么选择呢?

一般来说,我们会使用默认的标准分词粒度再结合整个短语,作为我们的检索关键词去倒排索引中检索,这就叫作混合粒度的分词方式。那「极客时间」就会被分为【极客、时间、极客时间】这样的检索词组合。如果检索后返回的结果数量不足,那我们还会去查询【极、客、时、间】这样的更细粒度的单字组合。

相关文章
|
10月前
|
运维 JavaScript 前端开发
阿里云函数计算入门:5 分钟部署你的第一个 Serverless 应用
本文介绍如何在5分钟内使用阿里云函数计算(FC)部署首个Serverless应用。通过创建服务、配置HTTP触发器、编写Node.js代码并测试,即可快速上线一个可公网访问的HTTP接口,无需管理服务器,轻松实现轻量开发与扩展。
|
10月前
|
编解码 算法 前端开发
java后端开发学习路线+避坑指南
java后端开发学习路线+避坑指南
|
10月前
|
存储 索引
如何使用「全量索引结合增量索引」方案?
采用“全量索引+增量索引”方案可高效处理大规模数据更新。系统周期生成不可变的全量索引,提升检索性能;实时新增数据则构建内存中的增量索引,支持快速写入。查询时合并两者结果,并通过删除列表标记已删数据,避免脏数据返回。结合Double Buffer机制,还可实现无锁访问,显著提升系统并发能力与检索效率。(238字)
|
10月前
|
数据采集 存储 机器学习/深度学习
搜索引擎的整体架构和工作过程
搜索引擎由爬虫、索引和检索三大系统构成:爬虫负责抓取网页并存储;索引系统对网页去重、分析并构建倒排索引;检索系统通过查询分析、相关性排序等技术,返回精准结果。全过程融合文本分析、机器学习与大规模计算,确保高效准确搜索。
|
10月前
|
存储 NoSQL 关系型数据库
什么是 Geohash 编码?
Geohash编码将经纬度转换为字符串,通过不断二分地球坐标区间,交叉合并经纬编码,再转为Base32简化表示。它用短字符串标识位置,支持高效空间索引与查询,广泛应用于Redis、MySQL等系统。
|
10月前
|
搜索推荐 数据库 索引
广告引擎的整体架构和工作过程
广告引擎核心是匹配用户与广告。通过用户标签、广告位信息及广告主定向条件,构建倒排索引,实现高效召回与排序,0.1秒内完成广告返回,并实时监测展现、点击与计费,确保精准投放与预算控制。
|
10月前
|
索引
如何对局部敏感哈希值进行相似检索?
利用SimHash与海明距离可判断文档相似性。为提升检索效率,Google采用抽屉原理:将64位哈希值均分4段,若两值海明距离≤3,则至少有一段完全相同。据此建立4个倒排索引,每段16位作键,查询时仅需匹配同段相同的文档,大幅缩小范围,实现海量数据下高效去重。
|
10月前
|
自然语言处理 搜索推荐 索引
搜索引擎是如何完成短语检索的?
搜索引擎进行短语检索时,首先尝试将整个短语作为关键词在倒排索引中查找。若未命中,则拆分为更细粒度的词(如“极客”“时间”)分别检索,并利用位置信息索引法,通过计算关键词间的最小窗口长度判断 proximity,确保结果中词语位置接近,从而实现精准匹配。
|
10月前
什么是局部敏感哈希?
局部敏感哈希(LSH)是一种将高维数据映射为低维编码的技术,使相似数据更可能生成相近或相同的哈希值。不同于传统哈希对微小变化敏感,LSH通过随机超平面划分空间,使邻近点在多个划分中大概率落入同侧,从而获得相似哈希码。常用海明距离衡量哈希值相似性,适用于近似最近邻搜索与大规模文本去重等场景。
|
10月前
|
监控 Java 测试技术
OOM排查之路:一次曲折的线上故障复盘
本文分享了一次线上服务因Paimon与RocksDB集成引发的三次内存溢出(OOM)故障排查全过程。从线程暴增到堆外内存泄漏,团队历经曲折,结合MAT、NMT、async-profiler等工具,最终定位至SDK中RocksDB通过JNI申请内存未释放的问题,并通过架构优化彻底解决。文章系统梳理了排查思路与工具使用,为类似技术栈提供宝贵经验。