query 属性发送。字段运算符构造条件,逻辑运算符组合条件。
结构化查询支持哪些运算符
and、or 和 not 以条件为子项,equals、in、range 和 text 接收字段名与值。
如何组合条件
嵌套逻辑运算符即可构建所需的布尔表达式。以下公司查询搜索位于 US 或 GB 的软件或科技公司,并排除组织类型为Educational 的记录:
in 代替 or 加 equals 的条件串。它适合国家列表、行业列表和其他枚举值集合。
文本匹配如何工作
text 条件可以是字符串(如上面的公司示例),也可以是包含 value 和 mode 的对象。当每个搜索词都必须匹配时使用 mode: "all",这些词不必构成完整短语:
mode 接受七个取值,API 会以 HTTP 400 拒绝其他任何取值并列出这七个:
top-k 限制文本条件检索的候选记录数量,默认 100。没有任何模式支持精确短语匹配。
text 只适用于文本字段。对 headquarters_country_code 等有类型字段使用它会返回 HTTP 400,错误信息为 Operator does not support field type 'string'. Supported types: array<text>, text。
equals 不适用于文本字段。字段接受哪些运算符取决于字段类型:industry、current_title 等文本类型字段只接受 text,对它们使用 equals 会返回 HTTP 400,错误信息为 Operator does not support field type 'text'。equals、in 和 range 用于 headquarters_country_code、city、followers 等有类型字段。
如何表达数值边界
range 接收一个字段名以及一到两个比较键。提供两个键表示闭区间:
{ "followers": { ">=": 1000 } }。
哪些字段可以被搜索
字段名因类目而异,字段接受哪些运算符取决于字段类型。完整列表见公司搜索和人物搜索。出现在view 输出中的字段不一定可以搜索:人物的 connections 会在 summary 中返回,但不能用于 range 条件。
当条件被拒绝时,请修正请求,而不要重试同一个请求体。Business Search 会返回 HTTP 400,并在消息中指出字段、运算符以及该运算符支持的类型。参见 Business Search 错误处理。
常见问题
公司搜索和人物搜索的 query 对象一样吗
运算符完全相同,字段名不同。公司类目使用industry、headquarters_country_code 和 linkedin_followers,人物类目使用 current_title、country_code 和 followers。参见 公司搜索和 人物搜索。
结构化查询能用于 Instant 或 Smart 模式吗
不能。ludicrous 接收结构化对象,instant 和 smart 接收自然语言字符串。类型不匹配会被以 HTTP 400 拒绝:在 Instant 中传对象会返回 request: "query" must be a string,在 Ludicrous 中传字符串会返回 request: "query" must be of type object。参见 什么是 Business Search。
在 view 中添加字段会过滤结果吗
不会。view 只选择输出字段。搜索条件写在 query 中,两者相互独立。