Istogramma (v3)

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

Gli istogrammi vengono generalmente eseguiti in parallelo a 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 rispetta 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 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 la sezione Filtri di ricerca. In questo esempio, non viene applicata alcuna query.

  • requestMetadata contiene informazioni sull'utente che avvia la ricerca. Per saperne di più, 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, in modo da restituire più risultati. Ad esempio, se una richiesta specificava 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 risultati ampliati.

Esempi

L'esempio seguente restituisce l'elenco dei conteggi dei job 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 con istogramma e una ricerca di lavoro identica, disableKeywordMatch nella ricerca di lavoro deve essere false.