היסטוגרמה (גרסה 3)

‫Cloud Talent Solution מאפשר לכם לקבל ייצוג היסטוגרמי של מספר המשרות שמשויכות לחיפוש נתון. חיפוש היסטוגרמה מחזיר את מספר כל המשרות שתואמות לשאילתה מסוימת, עם פירוט לפי searchType שצוין. לדוגמה, חיפוש היסטוגרמה יכול להחזיר את מספר המשרות לפי סוג העסקה (משרה מלאה, משרה חלקית וכו') שקיימות במאונטיין ויו, קליפורניה. כדי להגדיר את המאפיינים והפרמטרים של ההיסטוגרמה, פועלים לפי ההוראות במדריך הזה.

היסטוגרמות מופעלות בדרך כלל במקביל לקריאה לחיפוש, באמצעות אותו JobQuery ואותו requestMetadata.

בקשה

אפשר לקבל את ההיסטוגרמה מ-search API הבסיסי. כדי לעשות את זה, צריך להגדיר את histogramFacets ב-API‏ search ולהגדיר את המסננים של הבקשה. הערה: ההיסטוגרמה מתייחסת לכל המסננים שמוגדרים בשאילתת החיפוש. בדוגמה הבאה מוסבר המנגנון של אחזור היסטוגרמה,

שדות חובה

  • searchTypes היא רשימה של קטגוריות שרוצים לקבל עבורן את מספר המוצרים. לדוגמה, אם מציינים EMPLOYMENT_TYPE, הפונקציה מחזירה את מספר סוגי ההעסקה, כמו משרה מלאה או משרה חלקית. רשימה מפורטת של ערכי enum זמינה במאמר SearchType.

שדות אופציונליים

  • jobQuery היא שאילתת החיפוש של המשרה. פרטים נוספים זמינים במאמר בנושא מסנני חיפוש. בדוגמה הזו, לא מוחלת שאילתה.

  • requestMetadata מכיל מידע על המשתמש שיזם את החיפוש. מידע נוסף זמין בקטע RequestMetadata בדף חיפוש המשרות.

  • enableBroadening מרחיב את ההגבלות על המיקום ועל קטגוריית המשרה של בקשת החיפוש, כדי להציג יותר תוצאות. לדוגמה, אם בבקשה צוינו משרות ברדיוס של 20 מייל ממיקום מסוים, הגדרת הדגל הזה לערך true עשויה להחזיר משרות מחוץ לרדיוס הזה. בדוגמה הבאה לא נכללות תוצאות מורחבות.

דוגמאות

בדוגמה הבאה מוצגת רשימת מספר המשרות בשדות COMPANY_ID וב-customAttribute someFieldName1:

Java

מידע נוסף על התקנה ויצירה של לקוח Cloud Talent Solution זמין במאמר ספריות לקוח של 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

מידע נוסף על התקנה ויצירה של לקוח Cloud Talent Solution זמין במאמר ספריות לקוח של 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

מידע נוסף על התקנה ויצירה של לקוח Cloud Talent Solution זמין במאמר ספריות לקוח של 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
}

הגדרת ערכי סף מינימליים לרלוונטיות

בבקשות להיסטוגרמה לא נעשה שימוש בסף הרלוונטיות. כדי להבטיח שהמספרים יהיו זהים בין חיפוש היסטוגרמה לבין חיפוש משרה זהה, הערך של disableKeywordMatch בחיפוש המשרה צריך להיות false.