Histogram (v3)

Cloud Talent Solution memungkinkan Anda mendapatkan representasi histogram dari jumlah pekerjaan yang terkait dengan penelusuran tertentu. Penelusuran histogram menampilkan jumlah semua pekerjaan yang cocok dengan kueri tertentu, yang dipecah berdasarkan searchTypeyang diminta. Misalnya, penelusuran histogram dapat menampilkan jumlah pekerjaan per jenis pekerjaan (full-time, part-time, dll.) yang ada di Mountain View, CA. Untuk menentukan dimensi dan parameter histogram, ikuti panduan ini.

Histogram umumnya dijalankan secara paralel dengan panggilan penelusuran, menggunakan yang sama JobQuery dan yang sama requestMetadata.

Permintaan

Histogram dapat diperoleh dari search API yang mendasarinya. Hal ini dapat dicapai dengan menetapkan histogramFacets di search API dan menentukan filter permintaan. Perhatikan bahwa histogram mengamati semua filter seperti yang ditentukan dalam kueri penelusuran. Contoh berikut mengilustrasikan mekanisme pengambilan histogram,

Kolom wajib diisi

  • searchTypes adalah daftar kategori yang akan ditampilkan jumlahnya. Misalnya, tentukan EMPLOYMENT_TYPE untuk menampilkan jumlah jenis pekerjaan, seperti full-time atau part-time. Lihat SearchType untuk mengetahui daftar enum yang mendetail.

Kolom opsional

  • jobQuery adalah kueri pekerjaan yang akan dilakukan dalam penelusuran ini. Lihat Filter Penelusuran untuk mengetahui detail selengkapnya. Dalam contoh ini, tidak ada kueri yang diterapkan.

  • requestMetadata berisi informasi tentang pengguna yang memulai penelusuran. Lihat bagian RequestMetadata di halaman penelusuran pekerjaan untuk mengetahui informasi selengkapnya.

  • enableBroadening melonggarkan batasan pada lokasi dan kategori pekerjaan permintaan penelusuran, untuk menampilkan lebih banyak hasil. Misalnya, jika permintaan menentukan pekerjaan dalam radius 20 mil dari suatu lokasi, menetapkan flag ini ke true dapat menampilkan pekerjaan dari luar radius tersebut. Contoh berikut tidak menyertakan hasil yang diperluas.

Contoh

Contoh berikut menampilkan daftar jumlah pekerjaan di seluruh COMPANY_ID dan customAttribute someFieldName1:

Java

Untuk mengetahui informasi lebih lanjut tentang cara menginstal dan membuat klien Cloud Talent Solution, lihat Library Klien 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

Untuk mengetahui informasi lebih lanjut tentang cara menginstal dan membuat klien Cloud Talent Solution, lihat Library Klien 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

Untuk mengetahui informasi lebih lanjut tentang cara menginstal dan membuat klien Cloud Talent Solution, lihat Library Klien 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
}

Penetapan nilai minimum relevansi

Permintaan histogram tidak menggunakan penetapan nilai minimum relevansi. Untuk memastikan jumlahnya konsisten antara penelusuran histogram dan penelusuran pekerjaan yang identik, disableKeywordMatch dalam penelusuran pekerjaan harus false.