always_filter

Usage

explore: explore_name {
   always_filter 
 : 
 { 
 filters 
 : 
 [ 
 field_name 
 : 
 "filter expression" 
 , 
 field_name 
 : 
 "filter expression" 
 , ... 
 ] 
 } 
}
Hierarchy
always_filter
Default Value
None
Accepts
A field name and a Looker filter expression

Definition

always_filter lets you require users to include a certain set of filters that you define. You also define a default value for the filters. Although users may change your default value for their query, they cannot remove the filter entirely.

The field referenced in the filters subparameter can be a dimension , measure , filter , or parameter . If you need to reference a dimension or measure that is part of a joined view rather than part of this Explore, use view_name.field_name . For example:

 explore: order {
  always_filter: {
    filters: [id: "123", customer.id: "789"]
  }
  join: customer {
    sql_on: ${order.customer_id} = ${customer.id} ;;
  }
} 

Here the id filter refers to the id field from order . The customer.id filter refers to the id field from customer . This example also demonstrates that you can require multiple filters.

In the value subparameter, specify default values using Looker filter expressions .

Examples

Force the user to use an Order IDfilter (with a default value of "123"):

 explore: order {
  always_filter: {
    filters: [id: "123"]
  }
} 

Force the user to use an Order Created Datefilter (with a default value of the previous seven days):

 explore: order {
  always_filter: {
    filters: [created_date: "7 days"]
  }
} 

Force the user to use an Order IDfilter (default value of "123"), an Order Cityfilter (default value of "Chicago"), and a Customer Agefilter (default value of greater than or equal to 18):

 explore: order {
  always_filter: {
    filters: [id: "123", city: "Chicago", customer.age: ">=18"]
  }
  join: customer {
    sql_on: ${order.customer_id} = ${customer.id} ;;
  }
} 

Common challenges

Users can't remove a filter specified by always_filter

Although users may change the condition or the default value for their query, they cannot remove a filter that has been added by always_filter . If you want to pre-load filters for an Explore in a way that lets users completely remove the filters, consider creating a query that includes suggested filters and then sharing the query with users so they can use the query and its filters as a starting point.

Setting a blank default value

If you want to create a required filter with a blankdefault value, you can do so by specifying "-EMPTY" in the filter values:

 always_filter: {
  filters: [products.category: "-EMPTY"]
} 

The always_filter parameter overrides a default_value filter setting

always_filter overrides the default_value setting for the field. If you declare a value with always_filter , that value will be the default in the Explore. If you don't declare a value with always_filter , then "is any value" is the filter default in the Explore.

Things to know

always_filter affects existing Looks and dashboard tiles

Adding always_filter to an existing explore definition adds the set of filters with the default values to any Looks, Explores, or dashboard tiles based on that explore , including previously saved Looks and dashboard tiles that are based on the explore .

If you want filters that users can't change, consider sql_always_where

If you want an Explore to have filters that are the same for everyone and that cannot be changed in any way, you can use sql_always_where .

If you want user-specific filters that users can't change, consider access_filter

If you want an Explore to have filters that are specific to each user and that cannot be changed in any way, you can use access_filter .

Create a Mobile Website
View Site in Mobile | Classic
Share by: