概览

借助 Vision Warehouse,用户可以通过搜索配置和搜索超名词来自定义搜索体验。

搜索配置

搜索配置可以修改搜索条件和搜索分面行为。 搜索配置有以下四种用例。

适用范围:

  • 在线视频仓库:启用了以下所有用例。
  • 批量视频仓库:搜索条件已启用,但搜索细分条件未启用。
  • 图片仓库:搜索配置不可用。

用例 1:一对多标准

用户可以创建可映射到多个现有数据架构的自定义搜索条件。例如,以下搜索配置会创建自定义搜索条件“person”。当用户按“人”条件进行搜索时(例如,按“人”条件搜索“Mike”),我们的服务会将“人”条件扩展为“运动员”“教练”和“啦啦队员”,然后按所有这些数据架构进行搜索。换句话说,无论“Mike”被标注为“球员”“教练”还是“啦啦队员”,系统都会返回相关结果。

{
  name: "projects/$PROJECT_NUMBER/locations/$LOCATION_ID/corpora/$CORPUS_ID/searchConfigs/person"
  search_criteria_property {
    mapped_fields: "player"
    mapped_fields: "coach"
    mapped_fields: "cheerleader"
  }
}

用例 2:一对一细分

用户可以为现有数据架构创建一个搜索配置,以便为其启用搜索 facet。例如,以下搜索配置会为营业地点启用搜索细分。现在,用户在“地理位置”下搜索时,可以选择“地理位置”下的分桶值(例如“东京”“伦敦”),以进一步缩小搜索结果范围。

请注意,搜索配置 ID、facet_property.mapped_field 和数据架构 ID 都需要是相同的字符串,在本例中为“location”。

{
  name: "projects/$PROJECT_NUMBER/locations/$LOCATION_ID/corpora/$CORPUS_ID/searchConfigs/location"
  facet_property {
    mapped_fields: "location",
    display_name: "A customized name for UI",
    result_size: 5,
    bucket_type: FACET_BUCKET_TYPE_VALUE
  }
}

用例 3:一对多条件和细分

用户可以创建自定义搜索条件,同时为其启用搜索细目。例如,以下搜索配置会创建一个自定义搜索条件,将“地理位置”映射到“城市”“州”和“省/直辖市/自治区”。同时,搜索细分维度处于启用状态。“城市”“州”和“省”中的所有分桶值将一起返回。

请注意,在这种情况下,search_criteria_property 和 facet_property 的 mapped_fields 需要相同。它们应为现有数据架构的 ID。

{
  name: "projects/$PROJECT_NUMBER/locations/$LOCATION_ID/corpora/$CORPUS_ID/searchConfigs/location"
  search_criteria_property {
    mapped_fields: "city"
    mapped_fields: "state"
    mapped_fields: "province"
  }   
  facet_property {
    mapped_fields: "city"    
    mapped_fields: "state"
    mapped_fields: "province"
    display_name: "places"
    result_size: 5,
    bucket_type: FACET_BUCKET_TYPE_VALUE
  }
}

用例 4:基于范围的切面

对于用例 2 和 3,我们可以将切面分桶类型更改为基于范围。基于范围的分面与普通分面类似,但每个分面存储分区都涵盖某个连续范围。需要进行额外的设置才能配置持续跨度。

范围分面适用于:

  • 整数
  • 日期

范围细分有三种类型:

  • 固定范围:每个存储分区的大小相同。
  • 自定义范围:可编程的分桶大小,例如对数。
  • 日期范围:固定的分桶细化级别(“日”“月”和“年”)(仅适用于日期范围细分)。

以下搜索配置会针对“inventory-count”搜索条件启用搜索分面,并且分面存储分区将为 [-inf, 0)、[0, 10)、[10, 20)、[20, 30)、[30, inf)。

{
  name: "projects/$PROJECT_NUMBER/locations/$LOCATION_ID/corpora/$CORPUS_ID/searchConfigs/inventory-count"
  facet_property {
  mapped_fields: "inventory-count"
  display_name: "Inventory Count"
  result_size: 5
  bucket_type:FACET_BUCKET_TYPE_FIXED_RANGE
  fixed_range_bucket_spec {
    bucket_start {
      integer_value: 0
    }
    bucket_granularity {
      integer_value: 10
    }
    bucket_count: 5
    }
  }
}

以下搜索配置会针对“film-date”搜索条件启用精确到天的搜索细目。

{
  name: "projects/$PROJECT_NUMBER/locations/$LOCATION_ID/corpora/$CORPUS_ID/searchConfigs/film-date"
  facet_property {
    mapped_fields: "film-date"
    display_name: "Film Date"
    result_size: 5
    bucket_type: FACET_BUCKET_TYPE_DATETIME
    datetime_bucket_spec {
      granularity: DAY
    }
  }
}

搜索超义词

搜索超同义词可以修改搜索查询与智能搜索字符串注释的匹配方式。

适用范围:

  • 流式数据仓库:为全局搜索查询和智能搜索条件字符串查询启用了搜索上位词。
  • VoD 仓库:为智能搜索条件字符串查询启用了搜索上位词。
  • 图片仓库:搜索超义词不可用。

搜索超 nym 会将一个超 nym 映射到多个 hyponym。例如,以下搜索超义词将“车辆”映射到“轿车”“卡车”和“SUV”。在全球搜索查询中或在智能搜索字符串条件下搜索“车辆”时,系统还会匹配带有“轿车”“卡车”“SUV”以及“车辆”注释的结果。

{
  name: "projects/$PROJECT_NUMBER/locations/$LOCATION_ID/corpora/$CORPUS_ID/searchHypernyms/car-hypernym"
  hypernym: "vehicle"
  hyponyms: "sedan"
  hyponyms: "truck"
  hyponyms: "suv"
}