Histograma (v3)

Cloud Talent Solution te permite obtener un histograma que representa la cantidad de trabajos asociados con una búsqueda determinada. Una búsqueda de histograma muestra un recuento de todos los trabajos que coinciden con una consulta en particular, desglosados por el searchType solicitado. Por ejemplo, una búsqueda de histograma podría mostrar la cantidad de trabajos por tipo de empleo (de tiempo completo, de medio tiempo, etc.) que existen en Mountain View, CA. Para definir las dimensiones y los parámetros del histograma, sigue esta guía.

Los histogramas generalmente se ejecutan en paralelo con una llamada de búsqueda, mediante las mismas JobQuery y requestMetadata.

Solicitud

El histograma se puede obtener de la API subyacente search. Esto se logra si estableces histogramFacets en la API search y defines los filtros de la solicitud. Ten en cuenta que el histograma observa todos los filtros como se define en la búsqueda. En el siguiente ejemplo, se muestra el mecanismo de recuperación de un histograma.

Campos obligatorios

  • searchTypes es una lista de categorías en las que se muestran recuentos. Por ejemplo, puedes especificar EMPLOYMENT_TYPE a fin de mostrar un recuento de los tipos de empleo, como tiempo completo o medio tiempo. Consulta SearchType para ver una lista detallada de las enumeraciones.

Campos opcionales

  • jobQuery es la consulta de trabajo que se realizará en esta búsqueda. Consulta Filtros de búsqueda para obtener más información. En este ejemplo, no se aplica ninguna consulta.

  • requestMetadata contiene información sobre el usuario que inicia la búsqueda. Consulta la sección RequestMetadata de la página de búsqueda de trabajo para obtener más información.

  • enableBroadening disminuye las restricciones de ubicación y categoría de trabajo de la solicitud de búsqueda para obtener más resultados. Por ejemplo, si una solicitud especifica trabajos dentro de un radio de 32 kilómetros de una ubicación, establecer este indicador en true puede mostrar trabajos fuera de ese radio. En el siguiente ejemplo, no se incluyen resultados ampliados.

Ejemplos

El siguiente ejemplo muestra la lista de recuentos de trabajos en COMPANY_ID y el customAttribute someFieldName1:

Java

Consulta Bibliotecas cliente de Cloud Talent Solution para obtener más información sobre cómo instalar y crear un cliente de 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

Consulta Bibliotecas cliente de Cloud Talent Solution para obtener más información sobre cómo instalar y crear un cliente de 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

Consulta Bibliotecas cliente de Cloud Talent Solution para obtener más información sobre cómo instalar y crear un cliente de 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
}

Umbrales de relevancia

Las solicitudes de histograma no usan umbrales de relevancia. Para garantizar que los recuentos sean coherentes entre una búsqueda de histograma y una búsqueda de trabajo idéntica, disableKeywordMatch en la búsqueda de trabajo debe ser false.