SEO 百科
查询解析
本页目录
查询解析
查询解析 指切词与标注的一组动作:把用户输入的一句话切成一个个词,把这些词转成索引里能查找的形式,再标出词性,标出词与词之间的关系。查询解析排在查询理解的最前面,是后续改写和匹配的基础。
分词
分词是第一步,把连续的字符切成词。英文按空格和标点切,中文没有空格,要按词典和统计来判断边界。同一个字串,切法不同,检索结果就不同。
Elastic 把这一步叫分词,处理工具叫分词器,“简单的分词器遇到空格或标点就把文本切成词”[1]。中文站点的常见问题就出在这里,切错的词在索引里根本不存在。
归一化
切出词之后,还要把形态统一。大小写、变音符号、全角与半角这些差异,如果不统一,同一个词会被当成两个词存进索引。
Elastic 说明,归一化是“去掉本相同的词之间的无关差异,例如大写与小写”,有时还要“去掉有意义的差异,让 esta、ésta、está 都能按同一个词检索”[2]。归一化决定了输入形态不同、含义相同的一批字能不能汇到一处。
词性、句法与词语关系
解析不只切词,还要判断词的类别和搭配关系。引擎需要知道哪个词是主语、哪个词修饰哪个词,才能把查询和文档匹配起来。
这一步的产物通常不对外公开,站长看到的是结果,看不到中间标注。它影响的是匹配的精度,尤其是长查询和带修饰的查询。
查询侧与文档侧的一致
Elastic 说明,建立索引时完整文本字段会被分析成词,用于建立倒排索引;搜索同一个字段时,查询字符串“要通过同一套分析过程”,检索用的词才能和索引里的词形态一致[1]。倒排索引指从词反查文档的一张表。
两边不一致,匹配就会落空。站长把关键词放进标题和正文,引擎在文档侧才切得出这些词,查询侧也才有东西可对。
对站长的意义
关键词要写在引擎切得出来的位置。标题、正文、alt 文本这些地方有实际文字,引擎才能切词;写在图片里或脚本里的词,切不出来。
Google 这样描述索引编制:“分析网页上的文本、图片和视频文件,并将信息存储在大型数据库中”[3]。分析的对象是文字本身,站长要让文字以可读的形式出现在页面上。
生造词和错别字要在页面里写成一个正常说法。百度把搜索概括为提取的过程[4],也就是从海量数据中找出对用户有价值的内容,提取的前提是文字能被正确切分。
与其他查询处理步骤的关系
解析在改写之前。先把词切开、统一形态,再谈换说法和纠错。顺序反了,改写的对象就不存在。
解析也在意图判断之前。引擎要先知道用户的查询由哪些词组成,才谈得上判断用户想干什么。
附录
参见
参考资料
官方(境外)
- 《Analysis and Analyzers》,Elastic。
- 《Normalizing Tokens》,Elastic。
- 《关于 Google 搜索运作方式的深度指南》,Google 搜索中心。
官方(国内)
- 《百度搜索的工作原理》,百度搜索资源平台,2023-12-21 更新。
外部链接
无。