Skip to main content
Business Search 的结构化查询是一个嵌套 JSON 对象,在 Ludicrous 模式下作为 query 属性发送。字段运算符构造条件,逻辑运算符组合条件。

结构化查询支持哪些运算符

andornot 以条件为子项,equalsinrangetext 接收字段名与值。

如何组合条件

嵌套逻辑运算符即可构建所需的布尔表达式。以下公司查询搜索位于 US 或 GB 的软件或科技公司,并排除组织类型为 Educational 的记录:
在同一字段上,用 in 代替 orequals 的条件串。它适合国家列表、行业列表和其他枚举值集合。

文本匹配如何工作

text 条件可以是字符串(如上面的公司示例),也可以是包含 valuemode 的对象。当每个搜索词都必须匹配时使用 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 不适用于文本字段。字段接受哪些运算符取决于字段类型:industrycurrent_title 等文本类型字段只接受 text,对它们使用 equals 会返回 HTTP 400,错误信息为 Operator does not support field type 'text'equalsinrange 用于 headquarters_country_codecityfollowers 等有类型字段。

如何表达数值边界

range 接收一个字段名以及一到两个比较键。提供两个键表示闭区间:
提供一个键表示开区间,例如 { "followers": { ">=": 1000 } }

哪些字段可以被搜索

字段名因类目而异,字段接受哪些运算符取决于字段类型。完整列表见公司搜索人物搜索。出现在 view 输出中的字段不一定可以搜索:人物的 connections 会在 summary 中返回,但不能用于 range 条件。 当条件被拒绝时,请修正请求,而不要重试同一个请求体。Business Search 会返回 HTTP 400,并在消息中指出字段、运算符以及该运算符支持的类型。参见 Business Search 错误处理

常见问题

公司搜索和人物搜索的 query 对象一样吗

运算符完全相同,字段名不同。公司类目使用 industryheadquarters_country_codelinkedin_followers,人物类目使用 current_titlecountry_codefollowers。参见 公司搜索人物搜索

结构化查询能用于 Instant 或 Smart 模式吗

不能。ludicrous 接收结构化对象,instantsmart 接收自然语言字符串。类型不匹配会被以 HTTP 400 拒绝:在 Instant 中传对象会返回 request: "query" must be a string,在 Ludicrous 中传字符串会返回 request: "query" must be of type object。参见 什么是 Business Search

在 view 中添加字段会过滤结果吗

不会。view 只选择输出字段。搜索条件写在 query 中,两者相互独立。