full_suggestions

用法

view: view_name {
  dimension: field_name {
    full_suggestions: yes 
  }
}
层次结构
full_suggestions
可能的字段类型
维度、维度组、过滤条件、参数

接受
布尔值(“是”或“否”)

定义

当用户按支持建议的字段类型过滤探索时,Looker 默认会建议该字段的可能值(如需了解如何影响过滤条件建议,请参阅更改过滤条件建议文档页面)。为了提供过滤字段的建议,Looker 会对您的数据库执行查询,以检索该字段的不同值列表。Looker 通常通过对过滤条件字段执行如下查询来生成这些建议:

SELECT DISTINCT field_name FROM table
WHERE (field_name LIKE '%' OR field_name LIKE '% %')
GROUP BY 1 ORDER BY 1 LIMIT 1000

full_suggestions 参数用于控制 Looker 如何查询数据库,以便在探索的过滤条件中为字段的值提供建议:

  • full_suggestions: no:Looker 将使用其典型过滤条件建议查询,并且只会查询包含过滤条件字段的视图。
  • full_suggestions: yes:Looker 会将探索逻辑添加到其过滤条件建议查询中,这意味着 Looker 会包含查询过滤条件字段所需的任何探索联接,并且 Looker 会包含探索参数中的逻辑,包括以下参数:

默认行为

如果未为某个字段指定 full_suggestions 参数,Looker 会按以下行为查询建议值:

  • 对于使用 sql_always_whereaccess_filteralways_join 的探索,Looker 默认采用 full_suggestions: yes 行为。由于 access_filtersql_always_wherealways_join 参数会对探索查询应用限制,因此这些相同的限制也会应用于过滤条件建议查询。如需详细了解 Looker 如何为具有查询限制的探索提供建议,请参阅使用 sql_always_whereaccess_filter 的探索的相关注意事项
  • 否则,Looker 默认采用 full_suggestions: no 行为,仅查询过滤字段的视图,而不包含任何探索的逻辑。full_suggestions: no 设置可提高过滤条件建议的性能,因为 Looker 会查询单个表,而不会进行任何联接,也不会使用探索中定义的任何逻辑。

示例

如需在为维度提供过滤条件建议时,提示 Looker 使用探索的逻辑来查询数据库,请向维度的定义添加 full_suggestions: yes

dimension: project_name {
  type: string
  sql: ${TABLE}.project_name ;;
  full_suggestions: yes
}

使用 sql_always_whereaccess_filter 的探索的注意事项

sql_always_whereaccess_filter 参数通常用于控制数据访问。无论在探索中使用 sql_always_where 还是 access_filter,Looker 都会将这些限制应用于它为支持建议的字段类型提供的过滤条件建议。为防止用户看到不适用于自己的过滤条件建议,Looker 要求将探索逻辑 (full_suggestions:yes) 应用于探索中的过滤条件值建议。因此,如果某个 Explore 是使用 sql_always_whereaccess_filter 定义的,Looker 就不会针对使用 full_suggestions:no 定义的字段提供任何过滤条件建议。

如果您使用 sql_always_whereaccess_filter 进行探索,并且有一个字段不需要 sql_always_whereaccess_filter 逻辑,您可以通过在字段的定义中添加 bypass_suggest_restrictions:yes 来替换该行为。bypass_suggest_restrictions:yes 语句会提示 Looker 提供完整的过滤条件值建议列表。