filter 对象由 Bright Data 市场数据集 API 的 Search 和 Filter 两个端点共享:相同的 schema、相同的运算符、相同的嵌套规则。
筛选有哪三种形态?
一个筛选是以下三种形态之一:单字段筛选、组合多个筛选的筛选组,或空值检查。单字段筛选
用一个运算符将一个字段与一个值进行匹配:筛选组
使用and 或 or 组合多个筛选。筛选组的最大嵌套深度为 3 层:
空值检查
使用is_null 或 is_not_null 匹配值是否存在。这些运算符不接受 value:
有哪些可用的运算符?
下列运算符可用于字段筛选。哪些运算符可读取 CSV 或 JSON 文件?
这些文件引用运算符仅在 Filter 端点的 multipart 模式下有效。将文件名作为 value 传入,即可按存储在 CSV 或 JSON 文件中的成千上万个值进行筛选。
Search 端点不支持文件引用。Elasticsearch 无法在查询时读取外部文件。
如何在单个嵌套对象内进行匹配?
对于字段是对象数组的数据集,在筛选组上设置combine_nested_fields: true,使该组内的所有筛选必须在同一个对象内匹配,而不是跨数组中的不同对象:
combine_nested_fields,这两个条件可能在 experience 数组中的不同对象上分别匹配。
提示
- 在构建筛选之前,使用获取数据集元数据确认字段名称和类型。
- 尽量保持嵌套层级浅。最大深度为 3 层。
- 在 Search 端点上,对自由文本字段优先使用
includes而非=,因为 Elasticsearch 会对其分词。 - 在 Filter 端点上,文件引用仅可与上述列出的运算符配合使用。