Istogramma (v3)

Cloud Talent Solution ti consente di ottenere una rappresentazione istogrammatica del numero di lavori associati a una determinata ricerca. Una ricerca istogrammatica restituisce un conteggio di tutti i lavori che corrispondono a una determinata query, suddivisi per searchType richiesto. Ad esempio, una ricerca istogrammatica potrebbe restituire il numero di lavori 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 gli stessi requestMetadata.

Richiesta

L'istogramma può essere ottenuto dall'API search sottostante. Per farlo, imposta histogramFacets nell'API search e definisci i filtri della richiesta. Tieni presente che l'istogramma osserva tutti i filtri definiti nella query di ricerca. Il seguente esempio 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, come a tempo pieno o part-time. Per un elenco dettagliato degli enum, consulta SearchType.

Campi facoltativi

  • jobQuery è la query di lavoro da eseguire in questa ricerca. Per ulteriori dettagli, consulta 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 RequestMetadata sezione della pagina di ricerca di lavoro.

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

Esempi

Il seguente esempio restituisce l'elenco dei conteggi dei lavori in COMPANY_ID e l'attributo personalizzato someFieldName1:

Java

Per saperne di più sull'installazione e la creazione di un client Cloud Talent Solution, consulta Librerie client 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 la creazione di un client Cloud Talent Solution, consulta Librerie client 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 la creazione di un client Cloud Talent Solution, consulta Librerie client 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 garantire che i conteggi siano coerenti tra una ricerca istogrammatica e una ricerca di lavoro identica, disableKeywordMatch nella ricerca di lavoro deve essere false.