真实面经题目 · 原创解析

如何从数据和搜索两个角度设计一个电影垂直搜索系统?

电影垂直搜索要从数据侧建立结构化电影实体、别名、演员导演、类型、地区、上映时间和资源状态,从搜索侧完成 query 理解、多路召回、相关性排序和结果展示。回答重点是把数据质量、实体归一、检索链路和效果评估连成闭环。

出现于:百度 · 算法

60 秒回答模板

我会从数据和搜索两条线回答。数据侧先建设电影实体库,包含电影 ID、标题、别名、演员、导演、类型、地区、上映时间、评分、简介、资源状态等字段,并做多源抓取、去重、实体归一、别名维护和增量更新。搜索侧先做 query 理解,识别片名、演员、导演、类型、年份和意图;召回阶段用倒排、实体别名、结构化筛选和语义召回多路找候选;排序阶段结合文本相关性、实体匹配强度、热度、评分、时效性和资源可用性。最后用人工相关性、无结果率、点击播放转化、改搜率和分 query 类型指标迭代。

考点 数据实体
难度 真实面经题
回答目标 讲清原理、实现和边界

深入解析

01

目标定义

电影垂直搜索不是通用网页搜索的缩小版,而是围绕电影实体和用户观影意图做搜索。它需要支持精确片名、别名、演员导演、类型年代、剧情关键词和组合约束查询,同时在结果页给出结构化信息和可行动入口。

02

数据建设

数据侧核心是电影实体库。每个实体要有稳定 ID,聚合片名、外文名、别名、演员、导演、编剧、类型、地区、语言、上映时间、评分、简介、海报、资源状态等字段。多源数据需要去重、冲突解决、字段置信度和更新时间管理。

03

实体归一

电影搜索的难点在别名和歧义:同一电影可能有简称、译名、系列名和错别字,不同电影也可能重名。需要基于标题相似度、年份、主创、地区、用户点击日志和人工规则做实体合并与消歧,并维护别名词典和实体关系。

04

Query 理解

搜索侧先解析用户 query:识别片名候选、人物名、类型、年份、地区、评分意图、播放意图或剧情描述意图。对“某演员 2020 喜剧”这类组合查询,要把约束拆到结构化字段;对长尾剧情描述,可走语义召回或文本匹配。

05

召回排序

召回可分为片名和别名倒排、人物和类型字段召回、拼写纠错召回、语义向量召回和热门兜底召回。排序阶段综合 BM25 或文本相关性、实体匹配强度、字段命中、用户行为、热度、评分、资源可用性和时效性,避免只因热门而压过精确匹配。

06

质量闭环

评估要按 query 类型切片:精确片名看首位命中和实体正确率,人物类型组合看约束满足率,剧情描述看召回覆盖,线上看无结果率、点击率、播放或详情转化、二次搜索率和投诉。日志中的无结果和改搜 query 可反哺别名、纠错和语义召回。

易错点

  • 只回答倒排索引,没有讲电影实体库、别名、演员导演和结构化字段。
  • 把垂直搜索写成通用搜索引擎,忽略电影场景中的实体归一和重名消歧。
  • 排序只看热度,导致精确片名查询被热门但不相关的电影压过。
  • 评估只看整体点击率,不按片名、人物、类型、剧情描述等 query 类型拆分。

面试官追问

电影重名怎么处理?

需要用年份、地区、导演、演员、海报、热度和用户点击行为做消歧。展示层也应暴露关键区分字段,避免用户看到多个同名结果时无法判断。

别名词典如何维护?

可以从站内搜索日志、改搜链路、点击同一实体的 query、外部资料和人工审核中挖掘候选别名,按置信度和实体绑定关系灰度生效。

剧情描述类 query 怎么召回?

可对简介、标签、评论摘要或剧情文本建语义向量索引,同时保留关键词倒排。召回后要用实体相关性和主信息质量重排,避免语义相近但不是目标电影。

如何处理新上映电影?

要有增量数据管道和时效特征,新片可提升 freshness 权重,但仍要受 query 精确度和实体匹配约束,不能简单按热度置顶。