Visão geral

O Vision Warehouse permite que os usuários personalizem a experiência de pesquisa com a configuração de pesquisa e o hiperônimo de pesquisa.

Configuração da pesquisa

A configuração de pesquisa pode modificar os critérios de pesquisa e o comportamento da faceta de pesquisa. Temos os quatro casos de uso a seguir para a configuração de pesquisa.

Disponibilidade:

  • Armazenamento de vídeo em streaming: todos os casos de uso a seguir estão ativados.
  • Armazenamento em lote de vídeos: o critério de pesquisa está ativado, mas a faceta de pesquisa não.
  • Armazém de imagens: a configuração de pesquisa não está disponível.

Caso de uso 1: critérios um para muitos

Os usuários podem criar um critério de pesquisa personalizado que é mapeado para vários esquemas de dados existentes. Por exemplo, a configuração de pesquisa a seguir cria um critério de pesquisa personalizado, "pessoa". Quando os usuários pesquisam com o critério "pessoa", como pesquisar "Mike" com o critério "pessoa", nosso serviço expande os critérios "pessoa" para "jogador", "treinador" e "líder de torcida" e, em seguida, pesquisa em todos esses esquemas de dados. Em outras palavras, se "Mike" for anotado como "jogador", "treinador" ou "líder de torcida", os resultados relacionados serão retornados.

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

Caso de uso 2: faceta individual

Os usuários podem ativar o atributo de pesquisa de um esquema de dados criando uma configuração de pesquisa nele. Por exemplo, a configuração de pesquisa a seguir ativa a facet de pesquisa para localização. Agora, os usuários que pesquisam em "localização" podem selecionar valores de bucket em "localização", como "Tóquio", "Londres", para restringir ainda mais os resultados da pesquisa.

O ID da configuração de pesquisa, facet_property.mapped_field e o ID do esquema de dados precisam ser a mesma string, neste caso, "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
  }
}

Caso de uso 3: faceta e critérios um-para-muitos

Os usuários podem criar um critério de pesquisa personalizado e ativar o atributo de pesquisa ao mesmo tempo. Por exemplo, a configuração de pesquisa a seguir cria um critério de pesquisa personalizado que mapeia "location" para "city", "state" e "province". Enquanto isso, o atributo de pesquisa está ativado. Todos os valores de bucket de "cidade", "estado" e "província" serão retornados juntos.

Nesse caso, os campos mapeados de search_criteria_property e facet_property precisam ser idênticos. E eles precisam ser o ID do esquema de dados atual.

{
  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
  }
}

Caso de uso 4: faceta baseada em intervalo

Para os casos de uso 2 e 3, podemos mudar o tipo de bucket de uma faceta para ser baseado em intervalo. Os atributos com base em intervalos são semelhantes aos atributos normais, mas cada bucket de atributo abrange um intervalo contínuo. É necessária uma configuração extra para configurar o período contínuo.

Os atributos de intervalo estão disponíveis para:

  • Números inteiros
  • Datas

Há três tipos de facetas de intervalo:

  • Intervalo fixo: cada bucket tem o mesmo tamanho.
  • Intervalo personalizado: tamanhos de bucket programáveis, por exemplo, logarítmicos.
  • Período: granularidades fixas de DIA, MÊS e ANO (aplicável apenas a facetas de período).

A configuração de pesquisa a seguir ativa a faceta de pesquisa nos critérios de pesquisa "inventory-count", e os buckets de faceta serão [-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
    }
  }
}

A configuração de pesquisa a seguir ativa a faceta de pesquisa nos critérios de pesquisa "film-date" com uma granularidade de DIA.

{
  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
    }
  }
}

Pesquisar hiperônimo

O hiperônimo de pesquisa pode modificar a correspondência entre as consultas de pesquisa e as anotações de string de pesquisa inteligente.

Disponibilidade:

  • Armazenamento em streaming: o hiperônimo de pesquisa foi ativado para a consulta de pesquisa global e a consulta de string de critérios de pesquisa inteligente.
  • Armazenamento de VoD: o hiperônimo de pesquisa foi ativado para a consulta de string de critérios de pesquisa inteligente.
  • Armazém de imagens: o hiperônimo de pesquisa não está disponível.

Um hiperônimo de pesquisa mapeia um hiperônimo para vários hipônimos. Por exemplo, o hipônimo de pesquisa a seguir mapeia "veículo" para "sedan", "caminhão" e "SUV". A pesquisa de "veículo" em uma consulta de pesquisa global ou nos critérios de string de pesquisa inteligente também vai corresponder a resultados anotados com "sedan", "caminhão", "SUV" e "veículo".

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