Histograma (v3)

A Cloud Talent Solution permite acessar uma representação de histograma do número de vagas associadas à determinada pesquisa. Uma pesquisa por histograma retorna uma contagem de todas as vagas correspondentes a uma determinada consulta, detalhadas pelo searchType solicitado. Por exemplo, uma pesquisa por histograma pode retornar o número de vagas por tipo de emprego (período integral, meio período etc.) que existem em Mountain View, Califórnia. Para definir as dimensões e os parâmetros do histograma, siga este guia.

Os histogramas geralmente são executados em paralelo com uma chamada de pesquisa, usando JobQuery e requestMetadata iguais.

Request

O histograma pode ser conseguido da API search subjacente. Para isso, configure o histogramFacets na API search e defina os filtros da solicitação. Observe que o histograma aplica todos os filtros, conforme definido na consulta de pesquisa. O exemplo a seguir ilustra o mecanismo de recuperação de um histograma.

Campos obrigatórios

  • searchTypes é uma lista de categorias para contagens. Por exemplo, especifique EMPLOYMENT_TYPE para retornar uma contagem de tipos de vagas, como período integral ou meio período. Consulte SearchType para ver uma lista detalhada de enums.

Campos opcionais

  • jobQuery é a consulta de vagas para executar nesta pesquisa. Veja mais detalhes em Filtros de pesquisa. Neste exemplo, nenhuma consulta foi aplicada.

  • requestMetadata contém informações sobre o usuário que iniciou a pesquisa. Consulte a seção RequestMetadata da página de pesquisa de vagas para mais informações.

  • enableBroadening afrouxa as restrições de localização e categoria de vaga da solicitação de pesquisa, para retornar mais resultados. Por exemplo, se uma solicitação especificou vagas dentro de um raio de 30 quilômetros de um local, definir essa sinalização como true pode retornar vagas de fora desse raio. O exemplo a seguir não inclui os resultados ampliados.

Examples

O exemplo a seguir retorna a lista de contagens de vagas entre COMPANY_ID e o customAttribute someFieldName1:

Java

Para mais informações sobre a instalação e criação de um cliente do Cloud Talent Solution, consulte Bibliotecas de cliente do Cloud Talent Solution.


/** Histogram search */
public static void histogramSearch(String companyName) throws IOException, InterruptedException {
  // Make sure to set the requestMetadata the same as the associated search request
  RequestMetadata requestMetadata =
      new RequestMetadata()
          // Make sure to hash your userID
          .setUserId("HashedUserId")
          // Make sure to hash the sessionID
          .setSessionId("HashedSessionID")
          // Domain of the website where the search is conducted
          .setDomain("www.google.com");

  HistogramFacets histogramFacets =
      new HistogramFacets()
          .setSimpleHistogramFacets(Arrays.asList("COMPANY_ID"))
          .setCustomAttributeHistogramFacets(
              Arrays.asList(
                  new CustomAttributeHistogramRequest()
                      .setKey("someFieldName1")
                      .setStringValueHistogram(true)));

  // conducted.
  SearchJobsRequest searchJobsRequest =
      new SearchJobsRequest()
          .setRequestMetadata(requestMetadata)
          .setSearchMode("JOB_SEARCH")
          .setHistogramFacets(histogramFacets);
  if (companyName != null) {
    searchJobsRequest.setJobQuery(new JobQuery().setCompanyNames(Arrays.asList(companyName)));
  }

  SearchJobsResponse searchJobsResponse =
      talentSolutionClient
          .projects()
          .jobs()
          .search(DEFAULT_PROJECT_ID, searchJobsRequest)
          .execute();
  Thread.sleep(1000);

  System.out.printf("Histogram search results: %s\n", searchJobsResponse);
}

Python

Para mais informações sobre a instalação e criação de um cliente do Cloud Talent Solution, consulte Bibliotecas de cliente do Cloud Talent Solution.

def histogram_search(client_service, company_name):
    request_metadata = {
        "user_id": "HashedUserId",
        "session_id": "HashedSessionId",
        "domain": "www.google.com",
    }
    custom_attribute_histogram_facet = {
        "key": "someFieldName1",
        "string_value_histogram": True,
    }
    histogram_facets = {
        "simple_histogram_facets": ["COMPANY_ID"],
        "custom_attribute_histogram_facets": [custom_attribute_histogram_facet],
    }
    request = {
        "search_mode": "JOB_SEARCH",
        "request_metadata": request_metadata,
        "histogram_facets": histogram_facets,
    }
    if company_name is not None:
        request.update({"job_query": {"company_names": [company_name]}})
    response = (
        client_service.projects().jobs().search(parent=parent, body=request).execute()
    )
    print(response)

Go

Para mais informações sobre a instalação e criação de um cliente do Cloud Talent Solution, consulte Bibliotecas de cliente do Cloud Talent Solution.


// histogramSearch searches for jobs with histogram facets.
func histogramSearch(w io.Writer, projectID, companyName string) (*talent.SearchJobsResponse, error) {
	ctx := context.Background()

	client, err := google.DefaultClient(ctx, talent.CloudPlatformScope)
	if err != nil {
		return nil, fmt.Errorf("google.DefaultClient: %w", err)
	}
	// Create the jobs service client.
	service, err := talent.New(client)
	if err != nil {
		return nil, fmt.Errorf("talent.New: %w", err)
	}

	parent := "projects/" + projectID
	req := &talent.SearchJobsRequest{
		// Make sure to set the RequestMetadata the same as the associated
		// search request.
		RequestMetadata: &talent.RequestMetadata{
			// Make sure to hash your userID.
			UserId: "HashedUsrId",
			// Make sure to hash the sessionID.
			SessionId: "HashedSessionId",
			// Domain of the website where the search is conducted.
			Domain: "www.googlesample.com",
		},
		HistogramFacets: &talent.HistogramFacets{
			SimpleHistogramFacets: []string{"COMPANY_ID"},
			CustomAttributeHistogramFacets: []*talent.CustomAttributeHistogramRequest{
				{
					Key:                  "someFieldString",
					StringValueHistogram: true,
				},
			},
		},
		// Set the search mode to a regular search.
		SearchMode:               "JOB_SEARCH",
		RequirePreciseResultSize: true,
	}
	if companyName != "" {
		req.JobQuery = &talent.JobQuery{
			CompanyNames: []string{companyName},
		}
	}

	resp, err := service.Projects.Jobs.Search(parent, req).Do()
	if err != nil {
		return nil, fmt.Errorf("failed to search for jobs with Historgram Facets: %w", err)
	}

	fmt.Fprintln(w, "Jobs:")
	for _, j := range resp.MatchingJobs {
		fmt.Fprintf(w, "\t%q\n", j.Job.Name)
	}

	return resp, nil
}

Limite de relevância

As solicitações de histograma não usam limite de relevância. Para garantir a consistência das contagens entre pesquisas de histograma e pesquisas de vagas idênticas, é preciso que disableKeywordMatch seja false na pesquisa de vagas.