用量
始终过滤: {
过滤器: [字段名称: “过滤表达式”, 字段名称: “过滤表达式”, ...]
}
}
层次结构
always_filter |
默认值
无接受
字段名称和 Looker 过滤条件表达式
|
定义
借助 always_filter
,您可以要求用户添加您定义的一组特定过滤条件。您还可以为过滤器定义默认值。虽然用户可能会更改其查询的默认值,但他们无法彻底移除过滤条件。
filters
子参数中引用的字段可以是维度、测量、过滤条件或参数。如果您需要引用属于合并视图(而非此探索)的一部分的维度或测量,请使用 view_name.field_name
。例如:
explore: order {
always_filter: {
filters: [id: "123", customer.id: "789"]
}
join: customer {
sql_on: ${order.customer_id} = ${customer.id} ;;
}
}
此处的 id
过滤条件引用了 order
中的 id
字段。customer.id
过滤条件引用了 customer
中的 id
字段。此示例还演示了您可能需要多个过滤条件。
在 value
子参数中,使用 Looker 过滤条件表达式指定默认值。
示例
强制用户使用订单 ID 过滤条件(默认值为“123”):
explore: order {
always_filter: {
filters: [id: "123"]
}
}
强制用户使用订单创建日期过滤条件(采用过去 7 天的默认值):
explore: order {
always_filter: {
filters: [created_date: "7 days"]
}
}
强制用户使用订单 ID 过滤条件(默认值为“123”)、订单城市过滤条件(默认值为“芝加哥”)和客户年龄过滤条件(默认值大于或等于 18):
explore: order {
always_filter: {
filters: [id: "123", city: "Chicago", customer.age: ">=18"]
}
join: customer {
sql_on: ${order.customer_id} = ${customer.id} ;;
}
}
常见挑战
用户无法移除 always_filter
指定的过滤条件
“探索”界面不允许用户移除 always_filter
添加的过滤条件。如果您希望以可供用户完全移除过滤条件的方式为“探索”功能预加载过滤条件,不妨考虑创建包含建议的过滤条件的查询,然后与用户共享查询,以便他们可以使用该查询及其过滤条件着手。
设置空白默认值
如果您要创建具有默认值的空白过滤条件,可以通过在过滤条件值中指定 "-EMPTY"
来实现此目的:
always_filter: {
filters: [products.category: "-EMPTY"]
}
always_filter
参数会替换 default_value
过滤条件设置
always_filter
会替换该字段的 default_value
设置。如果您使用 always_filter
声明某个值,该值将是“探索”中的默认值。如果您没有使用 always_filter
声明值,则“探索”中会使用“是任何值”这一过滤条件。
注意事项
always_filter
会影响现有的外观和信息中心图块
将 always_filter
添加到现有的 explore
定义后,系统会将具有默认值的过滤条件集添加到任何基于该 explore
的 Looks、Discovery 或 Dashboard 图块,包括之前保存的 Looks 和基于 explore
的信息中心图块。
如果您需要用户无法更改的过滤器,请考虑使用 sql_always_where
如果您希望“探索”页面中的过滤条件对所有人都相同,且无法以任何方式更改,您可以使用 sql_always_where
。
如果您需要用户无法更改的针对具体用户的过滤条件,请考虑使用 access_filter
如果您希望“探索”页面包含特定于每个用户的过滤条件,并且过滤条件无法以任何方式更改,则可以使用 access_filter
。