Histogramme (v3)

Cloud Talent Solution vous permet d'obtenir une représentation sous forme d'histogramme du nombre de postes associés à une recherche donnée. Une recherche dans l'histogramme renvoie le nombre total d'offres d'emplois correspondant à une requête donnée, réparties en fonction du type de recherche demandé (searchType). Par exemple, une recherche dans l'histogramme peut renvoyer le nombre d'emplois existants à Mountain View, Californie, par type de contrat (temps plein, temps partiel, etc.). Pour définir les dimensions et les paramètres de l'histogramme, suivez ce guide.

Les histogrammes sont généralement exécutés parallèlement à un appel de recherche, au moyen des mêmes paramètres JobQuery et requestMetadata.

Request

L'histogramme peut être obtenu à partir de l'API search sous-jacente. Pour ce faire, définissez le paramètre histogramFacets sur l'API search en spécifiant les filtres de la requête. Notez que l'histogramme respecte tous les filtres tels que définis dans la requête de recherche. L'exemple suivant illustre le mécanisme de récupération d'un histogramme.

Champs obligatoires

  • searchTypes répertorie les catégories pour lesquelles des nombres doivent être renvoyés. Par exemple, définissez le paramètre EMPLOYMENT_TYPE de manière à renvoyer un nombre de types de contrats (temps plein ou temps partiel, par exemple). Reportez-vous à la section SearchType pour une liste détaillée des énumérations.

Champs facultatifs

  • jobQuery est la requête d'emploi à effectuer dans cette recherche. Pour en savoir plus, consultez la section Filtres de recherche. Dans cet exemple, aucune requête n'est appliquée.

  • requestMetadata contient des informations sur l'utilisateur qui lance la recherche. Consultez la section RequestMetadata de la page de recherche d'emploi pour plus d'informations.

  • enableBroadening assouplit les limites de localisation et de catégories d'emplois de la requête de recherche, afin de renvoyer plus de résultats. Par exemple, si une requête spécifie les offres d'emploi dans un rayon de 20 kilomètres d'un lieu, définir cette option sur true peut renvoyer des offres en dehors de ce rayon. L'exemple suivant n'inclut pas les résultats étendus.

Examples

L'exemple suivant renvoie la liste du nombre d'emplois au sein de l'entreprise COMPANY_ID avec l'attribut personnalisé (customAttribute) someFieldName1 :

Java

Pour en savoir plus sur l'installation et la création d'un client Cloud Talent Solution, consultez la page Bibliothèques clientes 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

Pour en savoir plus sur l'installation et la création d'un client Cloud Talent Solution, consultez la page Bibliothèques clientes 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

Pour en savoir plus sur l'installation et la création d'un client Cloud Talent Solution, consultez la page Bibliothèques clientes 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
}

Seuil de pertinence

Les requêtes d'histogramme n'utilisent pas de seuil de pertinence. Pour assurer la cohérence des décomptes entre une recherche d'histogramme et une recherche d'emploi identique, le champ disableKeywordMatch dans la recherche d'emploi doit être défini sur la valeur false.