Istogramma (v3)

Cloud Talent Solution ti consente di ottenere una rappresentazione in istogramma del numero di annunci associati a una determinata ricerca. Una ricerca di istogrammi restituisce un conteggio di tutti i job corrispondenti a una determinata query, suddivisi in base al searchType richiesto. Ad esempio, una ricerca di istogrammi potrebbe restituire il numero di offerte di lavoro per tipo di impiego (a tempo pieno, part-time e così via) esistenti a Mountain View, in California. Per definire le dimensioni e i parametri dell'istogramma, segui questa guida.

In genere, gli istogrammi vengono eseguiti in parallelo con una chiamata di ricerca, utilizzando lo stesso JobQuery e lo stesso requestMetadata.

Richiesta

L'istogramma può essere ottenuto dall'API search sottostante. Ciò si ottiene impostando histogramFacets sull'API search e definendo i filtri della richiesta. Tieni presente che l'istogramma tiene conto di tutti i filtri definiti nella query di ricerca. L'esempio seguente illustra il meccanismo di recupero di un istogramma.

Campi obbligatori

  • searchTypes è un elenco di categorie per le quali restituire i conteggi. Ad esempio, specifica EMPLOYMENT_TYPE per restituire un conteggio dei tipi di impiego, ad esempio a tempo pieno o parziale. Per un elenco dettagliato degli enum, consulta SearchType.

Campi facoltativi

  • jobQuery è la query di lavoro da eseguire in questa ricerca. Per ulteriori dettagli, consulta la sezione Filtri di ricerca. In questo esempio non viene applicata alcuna query.

  • requestMetadata contiene informazioni sull'utente che avvia la ricerca. Per ulteriori informazioni, consulta la sezione RequestMetadata della pagina di ricerca di lavoro.

  • enableBroadening allenta le restrizioni relative alla località e alla categoria di lavoro della richiesta di ricerca per restituire più risultati. Ad esempio, se una richiesta specifica lavori entro un raggio di 32 km da una località, l'impostazione di questo indicatore su true potrebbe restituire lavori al di fuori di questo raggio. L'esempio seguente non include i risultati ampliati.

Esempi

L'esempio seguente restituisce l'elenco dei conteggi dei job per COMPANY_ID e per l'attributo customAttribute someFieldName1:

Java

Per saperne di più sull'installazione e sulla creazione di un client Cloud Talent Solution, consulta Librerie client di 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

Per saperne di più sull'installazione e sulla creazione di un client Cloud Talent Solution, consulta Librerie client di 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

Per saperne di più sull'installazione e sulla creazione di un client Cloud Talent Solution, consulta Librerie client di 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
}

Soglia di pertinenza

Le richieste di istogrammi non utilizzano la soglia di pertinenza. Per assicurarti che i conteggi siano coerenti tra una ricerca di istogrammi e una ricerca di offerte di lavoro identica, disableKeywordMatch nella ricerca di offerte di lavoro deve essere false.