如何通过Upwork GraphQL API搜索具备多技能的岗位
解决Upwork GraphQL API多技能岗位搜索问题
核心结论
Upwork GraphQL API的skillExpression_eq字段确实不支持OR这类逻辑运算符,要实现多技能(OR逻辑)搜索,有以下几种可行方案:
方案1:使用skillExpression_in过滤器(推荐)
Upwork API提供了skillExpression_in参数,支持传入技能数组,匹配数组中任意一项技能的岗位。修改你的变量配置即可:
{ "marketPlaceJobFilter": { "skillExpression_in": ["Google Sheets", "Google Apps Script"] }, "searchType": "JOBS_FEED", "sortAttributes": [ { "field": "RECENCY" } ] }
查询语句无需修改,保持原结构即可。这个方法简洁高效,直接在单个查询内完成多技能OR匹配。
方案2:多次查询后合并去重
如果受API版本限制无法使用skillExpression_in,可以分两次查询:
- 第一次查询
skillExpression_eq: "Google Sheets" - 第二次查询
skillExpression_eq: "Google Apps Script" - 最后将两次结果合并,通过
id字段去重(避免重复岗位)
这种方法需要额外处理结果合并逻辑,但兼容性更好,适配所有API版本。
方案3:使用通用搜索关键词q
可以将多个技能作为关键词传入q参数,利用Upwork的全局搜索功能匹配岗位:
{ "marketPlaceJobFilter": { "q": "Google Sheets OR Google Apps Script" }, "searchType": "JOBS_FEED", "sortAttributes": [ { "field": "RECENCY" } ] }
注意:这种方式的匹配精度略低于专门的技能过滤器,因为q会搜索岗位标题、描述等所有文本内容,可能返回不相关结果,但实现成本最低。
内容的提问来源于stack exchange,提问作者Code Guy
相关产品推荐
相关产品推荐

