Histograma (v3)

Cloud Talent Solution te permite obtener una representación de histograma del número de empleos asociados a una búsqueda determinada. Una búsqueda de histograma devuelve un recuento de todos los empleos que coinciden con una consulta concreta, desglosados por el searchType solicitado. Por ejemplo, una búsqueda de histograma podría devolver el número de empleos por tipo de empleo (a tiempo completo, a tiempo parcial, etc.) que hay en Mountain View (California). Para definir las dimensiones y los parámetros del histograma, sigue esta guía.

Los histogramas se suelen ejecutar en paralelo con una llamada de búsqueda, usando el mismo JobQuery y el mismo requestMetadata.

Solicitud

El histograma se puede obtener de la API search subyacente. Para ello, se define el histogramFacets en la API search y se definen los filtros de la solicitud. Ten en cuenta que el histograma tiene en cuenta todos los filtros definidos en la consulta de búsqueda. En el siguiente ejemplo se ilustra el mecanismo para obtener un histograma.

Campos obligatorios

  • searchTypes es una lista de categorías de las que se deben devolver los recuentos. Por ejemplo, especifica EMPLOYMENT_TYPE para devolver un recuento de los tipos de empleo, como a tiempo completo o a tiempo parcial. Consulta la lista detallada de enumeraciones.SearchType

Campos opcionales:

  • jobQuery es la consulta de empleo que se va a realizar en esta búsqueda. Consulta más información sobre los filtros de búsqueda. 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 empleo para obtener más información.

  • enableBroadening relaja las restricciones de ubicación y categoría de empleo de la solicitud de búsqueda para devolver más resultados. Por ejemplo, si una solicitud especificaba trabajos en un radio de 32 km de una ubicación, al definir esta marca como true, se pueden devolver trabajos que estén fuera de ese radio. En el siguiente ejemplo no se incluyen resultados ampliados.

Ejemplos

En el siguiente ejemplo se devuelve la lista de recuentos de trabajos en COMPANY_ID y el atributo personalizado someFieldName1:

Java

Para obtener más información sobre cómo instalar y crear un cliente de Cloud Talent Solution, consulta las bibliotecas de 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

Para obtener más información sobre cómo instalar y crear un cliente de Cloud Talent Solution, consulta las bibliotecas de 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

Para obtener más información sobre cómo instalar y crear un cliente de Cloud Talent Solution, consulta las bibliotecas de 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
}

Umbral de relevancia

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