JobQuery

执行搜索查询所需的查询。

JSON 表示法
{
  "query": string,
  "queryLanguageCode": string,
  "companies": [
    string
  ],
  "locationFilters": [
    {
      object (LocationFilter)
    }
  ],
  "jobCategories": [
    enum (JobCategory)
  ],
  "commuteFilter": {
    object (CommuteFilter)
  },
  "companyDisplayNames": [
    string
  ],
  "compensationFilter": {
    object (CompensationFilter)
  },
  "customAttributeFilter": string,
  "disableSpellCheck": boolean,
  "employmentTypes": [
    enum (EmploymentType)
  ],
  "languageCodes": [
    string
  ],
  "publishTimeRange": {
    object (TimestampRange)
  },
  "excludedJobs": [
    string
  ]
}
字段
query

string

与职位职称、描述和地点字段匹配的查询字符串。

允许的最大字符数为 255。

queryLanguageCode

string

query 的语言代码。例如,“en-US”。此字段有助于更好地解读查询。

如果未指定值,系统会自动检测查询语言代码,这可能不准确。

语言代码应采用 BCP-47 格式,例如“en-US”或“sr-Latn”。如需了解详情,请参阅标识语言的标记

companies[]

string

此过滤器指定要搜索的公司实体。

如果未指定值,则会针对所有公司搜索招聘信息。

如果指定了多个值,则会针对指定的公司搜索招聘信息。

格式为“projects/{projectId}/tenants/{tenantId}/companies/{company_id}”。例如“projects/foo/tenants/bar/companies/baz”。

如果未指定租户 ID,则使用默认租户。例如“projects/foo/companies/bar”。

最多允许设置 20 个公司过滤器。

locationFilters[]

object (LocationFilter)

地点过滤器指定包含要搜索的招聘信息的地理区域。如需了解详情,请访问 LocationFilter

如果未指定地点值,则将忽略地点,检索满足其他搜索条件的招聘信息。

如果指定了多个值,则从任意指定地点检索招聘信息。如果为 LocationFilter.distance_in_miles 参数指定了不同的值,则系统会为所有营业地点使用所提供的最远距离。

最多允许设置 5 个地点过滤器。

jobCategories[]

enum (JobCategory)

类别过滤器指定要搜索的招聘信息类别。如需了解详情,请访问 JobCategory

如果未指定值,则会搜索任意类别的招聘信息。

如果指定了多个值,则会搜索任意指定类别的招聘信息。

commuteFilter

object (CommuteFilter)

允许按不同出行方式(例如驾车或公共交通)的通勤时间过滤招聘信息。

注意:此方法仅在您指定 CommuteMethod 时才有效。在本例中,locationFilters 会被忽略。

目前不支持按通勤时间排序。

companyDisplayNames[]

string

此过滤器指定要搜索的职位的确切公司 Company.display_name

如果未指定值,则搜索结果中的招聘信息会关联任意公司。

如果指定了多个值,则搜索结果中的招聘信息可关联任意指定公司。

最多允许设置 20 个公司显示名称过滤器。

compensationFilter

object (CompensationFilter)

此搜索过滤条件仅适用于Job.compensation_info。例如,如果此过滤器指定为“时薪 > $15 的小时工”,则仅搜索满足此条件的招聘信息。如果未定义过滤器,则搜索所有公开招聘信息。

customAttributeFilter

string

此过滤条件会指定与标记为 filterableJob.custom_attributes 匹配的结构化语法。

此表达式的语法是 SQL 语法的子集。

支持的运算符包括:=!=<<=>>=,其中运算符左侧是自定义字段键,运算符右侧是数字或带英文引号的字符串。反斜杠 (\) 和引号 (") 字符必须进行转义。

支持的函数包括 LOWER([field_name])(用于执行不区分大小写的匹配)和 EMPTY([field_name])(用于过滤是否存在键)。

布尔表达式 (AND/OR/NOT) 最多支持 3 层嵌套(例如,“((A AND B AND C) OR NOT D) AND E”),表达式中最多可以存在 100 个比较运算符/函数。表达式的长度必须小于 6000 字节。

示例查询:(LOWER(driving_license)="class \"a\"" OR EMPTY(driving_license)) AND driving_years > 10

disableSpellCheck

boolean

此标志控制拼写检查功能。如果设为 false,则服务尝试更正拼写错误的查询,例如,“enginee”被更正为“engineer”。

默认值为 false,即执行拼写检查。

employmentTypes[]

enum (EmploymentType)

工作性质过滤器指定要搜索的职位的工作类型,例如 EmploymentType.FULL_TIME

如果未指定值,则搜索结果中的职位包括所有工作性质。

如果指定了多个值,则搜索结果中的职位包括任意指定的工作性质。

languageCodes[]

string

此过滤器指定要搜索的招聘信息的语言区域,例如“en-US”。

如果未指定值,则搜索结果可以包含任何语言环境中的招聘信息。

语言代码应采用 BCP-47 格式,例如“en-US”或“sr-Latn”。如需了解详情,请参阅标识语言的标记

最多允许设置 10 个语言代码过滤器。

publishTimeRange

object (TimestampRange)

搜索在此过滤器指定的日期范围内发布的职位。

excludedJobs[]

string

此过滤器指定要在搜索期间排除的职位名称列表。

最多允许排除 400 个职位名称。

LocationFilter

搜索的地理区域。

JSON 表示法
{
  "address": string,
  "regionCode": string,
  "latLng": {
    object (LatLng)
  },
  "distanceInMiles": number,
  "telecommutePreference": enum (TelecommutePreference),
  "negated": boolean
}
字段
address

string

地址名称,例如“Mountain View”或“Bay Area”。

regionCode

string

地址的国家/地区的 CLDR 地区代码。用于解决用户输入地点模糊的问题,例如“Liverpool”可以指“Liverpool, NY, US”,也可以指“Liverpool, UK”。

设置此字段,使地理位置解析偏向于特定的国家或地区。如果未设置此字段,则默认情况下,应用程序行为偏向于美国。

如需了解详情,请参阅 https://www.unicode.org/cldr/charts/30/supplemental/territory_information.html。示例:“CH”代表瑞士。请注意,此过滤器不适用于与个人资料搜索相关的查询。

latLng

object (LatLng)

要搜索的地理中心的纬度和经度。如果提供了 address,则忽略此字段。

distanceInMiles

number

当搜索的地点为城市或更小的区域时,应用 distanceInMiles。如果要搜索的营业地点是一个州或更大值,则忽略此字段。

telecommutePreference

enum (TelecommutePreference)

允许客户返回未设置地点的招聘信息,具体而言,是远程办公职位(服务将远程办公视为特殊地点)。Job.posting_region 表示职位是否允许远程办公。如果此字段设为 TelecommutePreference.TELECOMMUTE_ALLOWED,系统会搜索远程办公职位,并忽略 addresslatLng。如果此政策未设置或设为 TelecommutePreference.TELECOMMUTE_EXCLUDED,系统不会搜索远程办公职位。

此过滤器可以单独用于搜索远程办公职位,也可以与其他地点过滤器结合使用,以搜索职位地点组合,例如“Mountain View”或“telecommuting”职位。但是,当与其他地点过滤器结合使用时,与搜索响应中的其他职位相比,远程办公职位将被视为相关度较低。

此字段仅用于招聘信息搜索请求。

negated

boolean

是否对过滤条件应用否定逻辑以排除与过滤条件匹配的个人资料。

目前仅支持搜索个人资料。

TelecommutePreference

指定是否包括远程办公职位。

枚举
TELECOMMUTE_PREFERENCE_UNSPECIFIED 如果未指定远程办公偏好,则为默认值。
TELECOMMUTE_EXCLUDED 排除远程办公职位。
TELECOMMUTE_ALLOWED 允许远程办公职位。

CommuteFilter

通勤搜索所需的参数。

JSON 表示法
{
  "commuteMethod": enum (CommuteMethod),
  "startCoordinates": {
    object (LatLng)
  },
  "travelDuration": string,
  "allowImpreciseAddresses": boolean,

  // Union field traffic_option can be only one of the following:
  "roadTraffic": enum (RoadTraffic),
  "departureTime": {
    object (TimeOfDay)
  }
  // End of list of possible types for union field traffic_option.
}
字段
commuteMethod

enum (CommuteMethod)

必需。用于计算通勤时间的交通方法。

startCoordinates

object (LatLng)

必需。用于计算通勤时间的营业地点的纬度和经度。

travelDuration

string (Duration format)

必需。最长行程时间,以秒为单位。允许的最大值为 3600s(1 小时)。格式为 123s

该时长以秒为单位,最多包含九个小数位,以“s”结尾。示例:"3.5s"

allowImpreciseAddresses

boolean

如果为 true,则也可以返回不含街道级别地址的招聘信息。对于城市级别地址,使用市中心。对于州级别和简略地址,使用文本匹配。如果此字段设置为 false 或未指定,则通勤时间搜索仅返回包含街道级别地址的招聘信息。

联合字段 traffic_option。通过通勤搜索时要考虑的交通因素。traffic_option 只能是下列其中一项:
roadTraffic

enum (RoadTraffic)

指定计算通勤时间时要使用的车流密度。

departureTime

object (TimeOfDay)

用于计算交通影响的出发时间,以当地时区的 google.type.TimeOfDay 表示。

目前,交通模型仅限于小时级别的精确度。

CommuteMethod

通勤方法。

枚举
COMMUTE_METHOD_UNSPECIFIED 未指定通勤方法。
DRIVING 通勤时间根据驾驶时间计算。
TRANSIT 通勤时间根据公交线路(包括公交车、地铁、地铁等)计算得出。
WALKING 通勤时间根据步行时间计算。
CYCLING 通勤时间根据骑行时间计算。

RoadTraffic

计算通勤时间时要使用的交通密度。

枚举
ROAD_TRAFFIC_UNSPECIFIED 未指定道路交通情况。
TRAFFIC_FREE 不考虑任何交通影响的最优通勤时间。
BUSY_HOUR 考虑了交通高峰期影响的通勤时间。

TimeOfDay

表示一天中的某个时间。日期和时区不重要,或在别处指定。API 可以选择允许闰秒。相关类型为 google.type.Dategoogle.protobuf.Timestamp

JSON 表示法
{
  "hours": integer,
  "minutes": integer,
  "seconds": integer,
  "nanos": integer
}
字段
hours

integer

一天中的小时(采用 24 小时制)。值应为 0 到 23。对于业务结束时间等场景,API 可以选择允许“24:00:00”一值。

minutes

integer

一天中某小时的分钟数。值必须是介于 0 和 59 之间的数字。

seconds

integer

时间的秒数部分。通常必须是介于 0 和 59 之间的数字。如果 API 允许闰秒,则 API 可以允许 60 一值。

nanos

integer

秒数的小数部分(以纳秒为单位)。值必须是介于 0 和 999999999 之间的数字。

CompensationFilter

过滤职位薪酬类型和金额。

JSON 表示法
{
  "type": enum (FilterType),
  "units": [
    enum (CompensationUnit)
  ],
  "range": {
    object (CompensationRange)
  },
  "includeJobsWithUnspecifiedCompensationRange": boolean
}
字段
type

enum (FilterType)

必需。过滤器类型。

units[]

enum (CompensationUnit)

必需。指定所需的 base compensation entry's CompensationInfo.CompensationUnit

range

object (CompensationRange)

薪酬范围。

includeJobsWithUnspecifiedCompensationRange

boolean

如果设置为 true,则会包含未指定薪酬范围字段的职位。

FilterType

指定过滤类型。

枚举
FILTER_TYPE_UNSPECIFIED 过滤器类型未指定。不应使用 INVALID 职位。
UNIT_ONLY

base compensation entry's单位过滤。当且仅当招聘信息包含基本 CompensationEntry 并且基本 CompensationEntry 的单位与提供的 units 匹配时,该招聘信息才是匹配项。填充一个或多个 units

如需了解基本薪酬条目的定义,请参阅 CompensationInfo.CompensationEntry

UNIT_AND_AMOUNT

base compensation entry's单位和金额 / 范围过滤。当且仅当招聘信息包含基本 CompensationEntry,并且基本条目的单位与提供的 CompensationUnit 匹配,并且数量或范围与提供的 CompensationRange 重叠时,该招聘信息才是匹配项。

如需了解基本薪酬条目的定义,请参阅 CompensationInfo.CompensationEntry

请仅设置一个 units 并填充 range

ANNUALIZED_BASE_AMOUNT

按年度基本薪酬金额和 base compensation entry's 单位过滤。填充 range 以及零个或多个 units

ANNUALIZED_TOTAL_AMOUNT

按年度总薪酬金额和 base compensation entry's 单位过滤。填充 range 以及零个或多个 units

TimestampRange

表示两个时间戳之间的一段时间的消息。

JSON 表示法
{
  "startTime": string,
  "endTime": string
}
字段
startTime

string (Timestamp format)

时间段的开始时间(含此日期)。

endTime

string (Timestamp format)

时段的结束时间(不含边界值)。