Job Search API参数:最佳做法

Job Search 配置

本部分概述了可用于配置 Job Search API 的参数。如需了解详情,请观看我们的视频教程

影响搜索结果的因素

“精选职位搜索”、“启用扩展”和“停用关键字匹配”一起使用,会对返回给求职者的职位数量和相关性产生重大影响。这三个因素的最合适配置取决于您的业务需求。确定最优配置的最佳方式是在测试阶段应用不同的测试场景并评估结果。如需详细了解如何使用这些参数,请参阅我们的视频教程页面

  1. 精选职位搜索:使用精选职位为各个职位分配推广值。这使您可以突出显示对您的业务需求而言更为重要的职位。如需了解最佳做法和实现详情,请参阅精选职位搜索文档。

  2. disableKeywordMatch:凭借此参数,职位搜索可以将除相关匹配项之外的基于关键字的匹配项返回到求职者查询。默认设置为 false。将此参数设置为 true 会停用关键字匹配,因此会返回较少的职位(仅限于机器学习功能确定的相关职位)。

  3. enableBroadening:借助此参数,您可以通过放宽求职者对地点和职位类别指明的限制来扩展求职者查询。默认设置为 false。启用此参数会增加返回的搜索结果数量,但可能会降低设置的结果总数与求职者的相关性。

搜索配置结果

要仅返回最相关的职位:请将 disableKeywordMatch 设置为 true,并将 enableBroadening 设置为 false。这会提高相关性方面的 API 性能指标,因为只会返回相关的职位。不过,搜索结果中返回的总体职位较少。

要返回更多的数量的职位,同时包括相关结果和关键字匹配的结果:请将 disableKeywordMatch 设置为 false,并将enableBroadening 设置为 false。关键字匹配的结果会列在结果中相关的职位之后,但不会返回查询扩展结果。

要返回更多数量的职位,同时包括相关的职位和查询扩展的职位:请将 disableKeywordMatch 设置为 true,并将 enableBroadening 设置为 true。求职者的查询会扩展为包括相关的职位类别和附近的地点。这些其他职位列在相关的结果之后。不会返回基于关键字的匹配结果。

要返回尽可能多的职位:请将 disableKeywordMatch 设置为 false,并将 enableBroadening 设置为 true。职位搜索返回的搜索结果中,最相关的职位在前面,然后是关键字匹配的职位和查询扩展的职位(按地点、职位类别等)。这样会最大限度地增加返回的职位总数。

diasableKeywordMatch enableBroadening 结果
- - 返回更多数量的职位,同时包括相关的结果和关键字匹配的结果(但假设精选职位搜索设置为 false)。
+ + 返回更多数量的职位,同时包括相关的职位和查询扩展的职位(但假设精选职位搜索设置为 false)。
- + 返回更多数量的职位(但假设精选职位搜索设置为 false)。
+ - 仅返回最相关的职位(但假设精选职位搜索设置为 false)。

Request.pageSize

为达到最佳效果并避免延迟,请将结果页面设置为一次显示 20 个或更少的职位。如需详细了解如何实现分页,请参阅搜索概览页面。

customAttributes

通过 customAttributes,您可以灵活地根据您的业务需求为职位分配附加值(例如,GPA 得分),并使用这些值来过滤结果。

地点字段

您可以在地点字段页面中找到 location 字段的详细概览。在 address 字段中提供职位的街道地址而不是 GPS 坐标有助于职位搜索改进地点检测和搜索相关性。

locationFilter

如果一家公司在不同地理区域有多个空缺职位,请使用 regionCode 字段。为每个列表分配 regionCode 可确保搜索查询仅返回求职者有意愿的地点的职位,而不是与搜索查询匹配的全局结果。例如,如果在没有设置 regionCode 的情况下搜索地点关键字“Cambridge”,将同时返回来自英国剑桥和美国马萨诸塞州剑桥的结果。这会降低搜索相关性。

例如,如果一条商家信息位于城市和街道级别,另一条商家信息位于州级,这两个信息都不会出现在与这两个商家信息匹配的定位搜索中。

regionCodelanguageCode

借助这两个字段,职位搜索可以在不同的地理区域中使用本地化搜索逻辑(例如,在 en_GB 为“lorry driver”,而在美国为“truck driver”)。设置 request.filters.locationFilters.regionCode 可以匹配用户正在搜索的地理位置(例如英国),并将 request.filters.languageCode 设置为该区域的相应语言代码(在本示例中为 en_GB)。

queryLanguageCode

我们建议您尽可能填充此字段。此参数可让 Job Search 处理可能用您所需的语言无法正常显示的意外或罕见字词(例如公司名称)。

distanceInMiles

此参数设置求职者指示地点周围的半径(以英里为单位)范围。Job Search 会返回此地理范围内的结果。该距离如何应用于搜索结果的地理位置取决于输入的地点信息的类型。如果求职者输入街道地址或邮政编码,则 distanceInMiles 距离以单个点为设置基准。如果求职者输入城市,则 Job Search 会在城市界限上应用边界框并计算与边界框边缘的距离。如果用户仅输入州或国家/地区,则忽略 distanceInMiles

确保以英里为单位的半径值尽可能小。将半径值设置为较大的范围会使职位搜索返回可能在求职者有意愿的地点范围外的结果,从而降低相关性。例如,在 distanceInMiles 设置为 100 英里时搜索纽约市的职位会同时返回新泽西州和纽约上州的结果。设置尽可能小的半径值会提高结果的相关性。

postingExpireTime

此参数设置招聘信息帖子在从搜索结果中移除之前处于活跃状态的时间长度。默认情况下,CTS 在创建时间(UTC 时间)后 30 天移除职位。

employmentTypes

这不是必需字段,但使用 employmentTypes 会提高职位搜索结果的相关性。

Job Search 配置:自定义排名

精选职位搜索使您能够通过突出显示基于单个变量 (promotionValue) 的职位来影响用户的搜索结果。如需了解详情,请参阅精选职位搜索文档。自定义排名使您可以根据多个变量影响搜索结果,从而对排名进行更精细的控制。此功能在需要平衡相关性与经济利益的应用中非常有用,例如,多层级每次点击费用 (CPC) 订阅者系统。对职位如何在原始相关性得分之上进行排名的影响基于两个变量:rankingExpressionimportanceLevel。如需详细了解如何使用精选招聘信息和自定义排名,请参阅我们的视频教程

  • rankingExpression:此变量控制如何根据计算出的相关性得分对职位进行排名。必须将“rankingExpression”设置为“filterable”,这样职位搜索才能将该参数编入索引。

  • importanceLevel:此参数设置职位在搜索结果中返回时的排名位置的重要性级别。可能的级别有六个:Unspecified、NONELOWMIDHIGHEXTREME。将该值设置为 EXTREME 会导致忽略所有其他 API 生成的相关性因素,因此请谨慎使用该值。设置为 EXTREME 的职位列在求职者查询搜索结果的最前面,而不是最相关的职位。

  • 精选职位搜索自定义排名:除了相关性排名之外,精选职位搜索最适合推广单一类别的职位(例如,某家公司的职位)。如果除了相关性排名之外,您还需要根据多层级 CPC(每次点击费用)变量对职位进行排名,则自定义排名是一种更好的选择。

通勤时间搜索允许求职者根据通勤时间搜索职位。要启用通勤时间搜索,请在 JobQuery.commuteFilter 字段中包含一个 CommuteFilter 对象。CommuteFilter 使用求职者指示的通勤时间方法、旅行时长和开始坐标来计算通勤时间。求职者还必须选择要在时间计算中显示的 roadTrafficTRAFFIC_FREEBUSY_HOUR)或 departureTime。如需了解详情,请参阅通勤时间搜索实现操作方法页面。

通勤时间搜索结果基于历史记录数据和汇总数据,而不是实时路况信息。departureTime 路况信息是根据一天中指定时间的平均路况信息计算得出的。roadTraffic 下的 BUSY_HOUR/TRAFFIC_FREE 选项分别是早高峰时段和午夜的平均路况信息。无论用户在一天中的什么时间发送查询,他们都会收到相同的通勤时间搜索结果。

多租户(可选)

职位搜索支持将租户作为 Google Cloud 项目与上传到其中的任何数据之间的中间组织层。借助租户,您可以跨租户共享数据,从而隔离数据集的子集,而无需使用多个项目。如果您有多个客户,并且不想在这些客户之间共享数据,但又希望维护单个 Google Cloud 项目以进行内部结算和报告,则多租户非常有用。例如:

  • 招聘求职网站提供商为具有多个子公司的组织构建招聘求职网站。
  • 招聘代理机构为多个企业搭建求职者跟踪系统。

默认情况下,每个项目都被分配有一个租户 ID。要实现多租户,请在给定项目中创建多个租户

各个租户彼此完全隔离。所有 API 只接受单个租户,以避免在同一 API 调用中针对多个租户查询数据。机器学习算法同样会将租户视为离散单元,不会跨租户处理数据。一个项目可以根据需要支持任意数量的租户。

安全性

CTS 提供极少量的租户支持。您负责创建租户、分配租户 ID,并在提出请求时提供正确的租户 ID。CTS 会验证租户 ID 是否由给定项目拥有,并从提供的租户检索数据。您必须在后端系统中管理用于捕获未经授权的访问权限的任何其他安全机制。

数据管理和错误处理

数据完整性

  1. 上传职位:数据问题可能会导致职位无法上传到职位搜索。如需查看错误代码列表,请参阅 HTTP 响应代码页面。常见示例包括:

    • 职位地点不正确,因此无法解析请求。
    • 公司或职位字段不存在,因此返回错误请求。

    对职位上传问题进行排查有三个主要选项:

  2. 将职位编入索引:职位搜索可用于在设定的时间段内将所有上传的职位编入索引。但是,您可能受到某些配额限制。在将职位发送到 CTS 之前,请务必检查系统是否对将请求编入索引进行限制。

因自身原因引发的 DDoS 攻击

错误处理

通过互联网提供的 API 服务可能出现间歇性连接故障、长时间停机、突发服务维护以及需要客户端应用重试 API 请求的其他事件。务必以网络友好型行为设计此类重试,例如采用指数退避算法

配额限制

避免发送超出预配配额的流量,尤其是远远高于您的预配配额。否则,您的流量可能会被归类为恶意流量,从而被屏蔽。

重复数据删除

重复的职位会对求职者的搜索体验产生负面影响。职位搜索包含两个最大限度减少重复项的功能:

  1. 创建职位:如果您尝试使用以下条件创建 2 个以上的职位,则记录将被拒绝并返回 4xx 错误:

    • 相同的 companyName,以及
    • 相同的 job_req_id,以及
    • 相同的地点/languageCode
  2. 搜索职位:职位搜索会显示与求职者的搜索查询相关的职位。相关性算法的内置功能可确保返回的所有职位的多样化,防止几乎相同的职位在搜索结果中彼此相邻显示。