搜索概览

借助 Cloud Talent Solution,用户可以搜索您存储于 Job search 索引中的招聘信息。公司职位搜索的设计支持自定义,您可以根据业务需求对其进行更改。本页面简要介绍了 CTS Job Search 的搜索功能。

发出搜索请求

要发出职位搜索请求,请向 jobs:search 端点发送 POST 请求,在正文中包含搜索数据。

常用字段(可选)

  • JobQueryJobQuery对象由两部分组成,一个 query 字符串和应用于该字符串的过滤器。借助此功能,您的用户可以使用一个或多个过滤器(地点、通勤时间、薪酬等)搜索查询字符串(例如“communications assistant”)。 如需了解详情并查阅可用过滤器选项列表,请参阅搜索过滤器

  • searchMode:指定要应用的搜索类型。选项如下:

    • JOB_SEARCH(推荐):这是默认搜索模式,可搜索所有职位对象。系统会向用户返回相关性最高的招聘信息,结果按照与搜索查询的相关性排列。
    • FEATURED_JOB_SEARCH:仅搜索 promotionValue 大于 0 的职位对象。结果按 promotionValue 降序排列,值最高的排在最前面;如果值相等,则按相关性排列。如需了解详情,请参阅精选职位
  • jobView:定义为每个匹配的职位对象返回的字段数。可以是 JOB_VIEW_SMALL(默认值)、JOB_VIEW_MINIMALJOB_VIEW_FULL。如需查看每个选项的说明,请参阅 JobView 参考文档。

  • orderBy:返回招聘信息的排列顺序。如需查阅允许的值,请参阅参考文档。默认按相关性降序排列 (RELEVANCE_DESC)。

必填字段

以下字段必填:

  • requestMetadata:包含此搜索请求的用户和会话信息。

RequestMetadata

每个搜索和直方图请求都必须包含 RequestMetadata 对象。此对象包含发起搜索的用户的相关信息。 这有两个主要原因:

  • 用户一致性:为提高搜索相关性,Cloud Talent Solution 同时运行多个版本的底层模型。 CTS 确保求职者(由 userIdsessionIddomain 标识)拥有一致的体验。系统应对这些字段进行混淆处理。

  • 改进搜索效果:调优算法基于 RequestMetadata 字段中提供的信息以及您提供的求职者数据。如此可提高搜索结果的相关性。

使用搜索运算符

下表中的搜索运算符可以单独使用,也可以结合使用。

运算符 说明
( ) 将一个或多个关键字组合在一起。
OR 搜索与运算符任意一侧的关键字或关键字组相关的结果。示例:"software OR java" 将返回其元数据中包含“software”或“java”的招聘信息。
搜索同时与运算符两侧的关键字或关键字组相关的结果。例如:"(software OR java) AND (marketing)" 将返回同时与“software”和“marketing”相关,或同时与“java”和“marketing”相关的招聘信息。
排除与紧跟着运算符的关键字或关键字组相关的结果。关键字或关键字组必须括在括号内。
- 排除与运算符后面的关键字或关键字组相关的结果。例如:"software -java" 将返回与“software”相关的招聘信息,但排除与“java”相关的招聘信息。
申请: 返回具有指定申请 ID 的招聘信息。例如,req:1234 返回申请 ID 为 1234 的招聘信息。

求职者查询

系统也可能会将搜索词作为实际的职位相关实体进行检测。例如,如果用户查询“intern”(实习生),则 Cloud Talent Solution 会将其工作性质视为 INTERN,因而仅过滤出有 EMPLOYMENT_TYPE - INTERN 设置的招聘信息。而对于 EMPLOYMENT_TYPE 设置为其他值的招聘信息,即使其职位描述中包含实习生,系统也不会返回该条招聘信息。

问题排查

每个搜索请求在职位搜索系统中生成唯一的搜索 requestID。此值用于跟踪该搜索的参数以及响应。这对于排查与特定搜索或 CRUD 请求相关的问题至关重要,应妥善记录。系统会在搜索响应正文ResponseMetadata 字段或相关的 CRUD 调用响应对象内返回 requestID

如需排查与相关性、搜索查询、索引查询等有关的支持问题,请向我们的支持团队提交工单,在其中标注相关的 requestID 或描述请求。

结果计数

结果计数用于向求职者显示搜索结果的数量。此数量并不一定对应直方图结果或返回的实际招聘信息数量。 Job Search 最多返回 5000 个职位。

分页(可选)

默认情况下,Job Search 会在单次调用中返回 100 个结果(如果结果总数小于 100,则更少)。要查看超过 100 个结果,您可以实现分页。如果结果总数超过最大值 5000,则包含第 5000 个结果的页面之后的所有页面将为空白。以下字段用于控制分页:

  • pageSize:返回的结果数。
  • nextPageToken:随搜索结果的每一页返回的唯一标记,用于指定下一页结果的起始位置。如果没有更多结果,则此字段为空。
  • offset:指定返回到给定页面顶部的招聘信息的相关性排序与 1(返回相关性最高的招聘信息)之间的偏移量。例如,某用户进行搜索时,将 pageSize设置为 10。第一页顶部返回排序第 1 的招聘信息,则此页面的 offset 值为 0。下一页顶部返回排序第 11 的招聘信息,则此页面的 offset 值为 10。

实现分页的方法主要有两种。您可以使用 pageSizenextPageToken 直接指向下一页的结果(每页都有一个新 nextPageToken 值,指向后一页面)。如果使用此方法,您将始终从结果的顶部开始,并按顺序进行分页。或者,您可以将 pageSizeoffset 搭配使用,以直接指定显示在每个页面顶部的编号结果。如果您使用 offset,而不是 nextPageToken,则您可以跳转到结果集中的任何点。

我们建议您将页面大小设置成显示 20 个或 20 个以下的结果可避免延时问题。最佳做法是,每向求职者显示一个页面就发出一个搜索调用。 另一种方法是,使用一个搜索调用返回大量招聘信息,再在客户端进行分页,但这会妨碍机器学习模型通过 Jobs Analytics Framework 准确学习的能力。

如果您使用分页,请求中除 pageSize 之外的所有字段,nextPageTokenoffset 必须保持不变。如果这些字段不相同,则结果中返回的职位顺序可能不一致。

拼写检查

拼写检查是 CTS 搜索请求的一项功能,目的是发现可能拼写错误的搜索词,加以更正,并根据更正后的查询返回结果。例如,启用拼写检查后,如果求职者搜索“manaer”而不是“manager”,CTS 将返回与“manager”相关的招聘信息。您可以设置搜索请求的 disableSpellCheck 字段来启用/停用拼写检查功能。如果启用了拼写检查功能,则可以在搜索响应的 spellResult 字段中找到更正后的查询。