更改过滤条件建议

本页面简要介绍了会影响过滤条件建议的 LookML 参数。此页面列出了每个参数,并提供了指向其完整参考页面的链接以及有关其功能的简短说明。

默认行为

默认情况下,在 Look 或探索中,当用户为支持建议的字段输入过滤条件值时,Looker 会建议与用户输入内容匹配的选项。在信息中心内,如果信息中心过滤条件是根据支持建议的字段进行过滤,Looker 还会建议过滤条件选项。这些过滤条件建议是使用针对相应字段的 SELECT DISTINCT 查询创建的,因此建议只会返回与该字段的现有数据匹配的值:

当用户选择过滤条件值字段时,系统会显示一个下拉菜单,其中包含过滤条件建议。

如果您遇到任何意外行为,需要排查过滤条件建议方面的问题,请参阅排查常见的过滤条件建议问题最佳实践页面。

支持建议的字段类型

Looker 支持为 dimensiondimension_groupfilterparameter 字段提供以下 type 值建议。

支持建议的维度 type 值:

支持建议的维度组 type 值:

支持建议的过滤条件 type 值:

  • type: string

支持建议的参数 type 值:

启用或停用过滤条件建议

本部分介绍了以下 LookML 参数,您可以使用这些参数来启用或停用过滤条件建议:

suggestions(查看)

默认情况下,当用户在支持建议的字段上过滤探索时,Looker 会建议该字段的可能值。

您可以使用 suggestions:no 定义视图,以针对视图中的所有字段停用建议。

suggestable(字段)

默认情况下,当用户在支持建议的字段上过滤探索时,Looker 会建议该字段的可能值。

您可以使用 suggestable:no 定义单个字段,以针对该字段停用建议。

过滤条件建议值

本部分介绍了以下 LookML 参数,您可以使用这些参数来设置或限制过滤条件建议中显示的值:

allowed_value(字段)

allowed_value 可与 parameter LookML 参数搭配使用。如果 Looker 开发者提供了一个parameter 仅限过滤条件的字段,则可以使用 {% parameter %} Liquid 变量来引用用户输入或选择的值。您可以选择使用 allowed_value 来定义用户可为相应参数字段选择的值的列表。

allowed_value 有两个子形参,即 labelvaluelabel 子参数用于指定用户将在过滤条件建议中看到的选项。value 子参数包含传递给 {% parameter %} Liquid 变量的值。

例如,可以按如下方式定义参数:

parameter: order_amount {
  type: string
  allowed_value: {
    label: "Less than $50"
    value:"< 50"
  }
  allowed_value: {
    label: "Between $50 and $100"
    value:"<= 100"
  }
  allowed_value: {
    label: "Over $100"
    value:"> 100"
  }
}

然后,当用户按此参数进行过滤时,可以选择低于 50 美元50 美元到 100 美元之间高于 100 美元

如需了解详情,请参阅 parameter 参考页面的此部分

bypass_suggest_restrictions(字段)

bypass_suggest_restrictions 可在通常会停用或限制过滤条件建议的情况下启用该功能。如果您已使用 sql_always_whereaccess_filter 限制用户可查看的行,那么 Looker 也会将过滤条件建议限制为允许的行中的值。不过,如果您确定特定字段中没有任何可能会泄露敏感信息的值,则可以使用 bypass_suggest_restrictions 恢复全套过滤条件建议。

case(字段)

借助 case,您可以根据条件逻辑对维度的结果进行分桶。这会影响过滤条件建议,因为只有在 case 语句中定义的值才会显示为相应维度的过滤条件建议。

如果使用 case 的维度用于更新其他过滤条件的过滤条件中,则该维度可与关联的过滤条件搭配使用。使用 case 的维度不能用于正在更新的过滤条件中。

full_suggestions(字段)

您可以使用 full_suggestions 参数定义字段,以控制 Looker 如何查询数据库,从而为过滤条件提供字段值建议:

  • full_suggestions: no:Looker 将使用包含不同值的基本查询,并且只会查询包含过滤字段的视图。
  • full_suggestions: yes:Looker 会将探索逻辑添加到其过滤条件建议查询中,这意味着 Looker 会包含查询过滤条件字段所需的任何探索联接,并且 Looker 会包含探索参数(例如 sql_always_whereaccess_filterconditionally_filter)中的逻辑。

如需了解 Looker 在提供建议方面的默认行为,以及使用 sql_always_whereaccess_filter 的探索的注意事项,请参阅 full_suggestions 页面

suggest_dimension(字段)和 suggest_explore(字段)

Looker 通常通过对过滤字段执行 SELECT DISTINCT 查询来生成过滤条件建议。对于某些大型表,此查询可能会过慢或造成过大的数据库负载。您可以结合使用 suggest_dimensionsuggest_explore,让 Looker 查询备选维度以获取过滤条件建议(如果该维度位于其他探索中)。

suggestions(字段)

suggestions 可让您对可能的过滤建议值列表进行硬编码。如果您不希望某个字段中的某些数据值显示为建议,而是希望指定一个更有限的列表,那么此功能会非常有用。

缓存过滤条件建议

本部分介绍了 suggest_persist_for 参数,该参数可用于配置过滤条件建议的缓存时长。

如果您想减轻数据库的负载,并且某个字段的数据值数量非常多,请考虑使用参数来为该字段停用过滤条件建议。如果您希望显示过滤条件建议,可以考虑使用参数来限制查询的过滤条件值或对相应选项进行硬编码

suggest_persist_for(字段)

默认情况下,过滤条件建议会缓存 6 小时,因此在 6 小时内,系统会提供相同的建议列表。借助 suggest_persist_for 参数,您可以更改过滤条件建议的缓存时长。