使用直方图查询搜索职位。
包含此代码示例的文档页面
如需查看上下文中使用的代码示例,请参阅以下文档:
代码示例
Go
import (
"context"
"fmt"
"io"
talent "cloud.google.com/go/talent/apiv4beta1"
talentpb "google.golang.org/genproto/googleapis/cloud/talent/v4beta1"
)
// histogramSearch searches for jobs with histogram queries.
func histogramSearch(w io.Writer, projectID, companyID string) error {
ctx := context.Background()
// Initialize a jobService client.
c, err := talent.NewJobClient(ctx)
if err != nil {
return fmt.Errorf("talent.NewJobClient: %v", err)
}
defer c.Close()
// Construct a searchJobs request.
req := &talentpb.SearchJobsRequest{
Parent: fmt.Sprintf("projects/%s", projectID),
// Make sure to set the RequestMetadata the same as the associated
// search request.
RequestMetadata: &talentpb.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",
},
HistogramQueries: []*talentpb.HistogramQuery{
{
// More info on histogram facets, constants, and built-in functions:
// https://godoc.org/google.golang.org/genproto/googleapis/cloud/talent/v4beta1#SearchJobsRequest
HistogramQuery: "count(base_compensation, [bucket(12, 20)])",
},
},
}
if companyID != "" {
req.JobQuery = &talentpb.JobQuery{
Companies: []string{fmt.Sprintf("projects/%s/companies/%s", projectID, companyID)},
}
}
resp, err := c.SearchJobs(ctx, req)
if err != nil {
return fmt.Errorf("SearchJobs: %v", err)
}
for _, job := range resp.GetMatchingJobs() {
fmt.Fprintf(w, "Job: %q\n", job.GetJob().GetName())
}
return nil
}
Java
/*
* Please include the following imports to run this sample.
*
* import com.google.cloud.talent.v4beta1.HistogramQuery;
* import com.google.cloud.talent.v4beta1.Job;
* import com.google.cloud.talent.v4beta1.JobServiceClient;
* import com.google.cloud.talent.v4beta1.RequestMetadata;
* import com.google.cloud.talent.v4beta1.SearchJobsRequest;
* import com.google.cloud.talent.v4beta1.SearchJobsResponse.MatchingJob;
* import com.google.cloud.talent.v4beta1.TenantName;
* import com.google.cloud.talent.v4beta1.TenantOrProjectName;
* import java.util.Arrays;
* import java.util.List;
*/
public static void sampleSearchJobs() {
// TODO(developer): Replace these variables before running the sample.
String projectId = "Your Google Cloud Project ID";
String tenantId = "Your Tenant ID (using tenancy is optional)";
String query = "count(base_compensation, [bucket(12, 20)])";
sampleSearchJobs(projectId, tenantId, query);
}
/**
* Search Jobs with histogram queries
*
* @param query Histogram query More info on histogram facets, constants, and built-in functions:
* https://godoc.org/google.golang.org/genproto/googleapis/cloud/talent/v4beta1#SearchJobsRequest
*/
public static void sampleSearchJobs(String projectId, String tenantId, String query) {
try (JobServiceClient jobServiceClient = JobServiceClient.create()) {
TenantOrProjectName parent = TenantName.of(projectId, tenantId);
String domain = "www.example.com";
String sessionId = "Hashed session identifier";
String userId = "Hashed user identifier";
RequestMetadata requestMetadata =
RequestMetadata.newBuilder()
.setDomain(domain)
.setSessionId(sessionId)
.setUserId(userId)
.build();
HistogramQuery histogramQueriesElement =
HistogramQuery.newBuilder().setHistogramQuery(query).build();
List<HistogramQuery> histogramQueries = Arrays.asList(histogramQueriesElement);
SearchJobsRequest request =
SearchJobsRequest.newBuilder()
.setParent(parent.toString())
.setRequestMetadata(requestMetadata)
.addAllHistogramQueries(histogramQueries)
.build();
for (SearchJobsResponse.MatchingJob responseItem :
jobServiceClient.searchJobs(request).iterateAll()) {
System.out.printf("Job summary: %s\n", responseItem.getJobSummary());
System.out.printf("Job title snippet: %s\n", responseItem.getJobTitleSnippet());
Job job = responseItem.getJob();
System.out.printf("Job name: %s\n", job.getName());
System.out.printf("Job title: %s\n", job.getTitle());
}
} catch (Exception exception) {
System.err.println("Failed to create the client due to: " + exception);
}
}
Node.js
const talent = require('@google-cloud/talent').v4;
/**
* Search Jobs with histogram queries
*
* @param query {string} Histogram query
* More info on histogram facets, constants, and built-in functions:
* https://godoc.org/google.golang.org/genproto/googleapis/cloud/talent/v4beta1#SearchJobsRequest
*/
function sampleSearchJobs(projectId, tenantId, query) {
const client = new talent.JobServiceClient();
// Iterate over all elements.
// const projectId = 'Your Google Cloud Project ID';
// const tenantId = 'Your Tenant ID (using tenancy is optional)';
// const query = 'count(base_compensation, [bucket(12, 20)])';
const formattedParent = client.tenantPath(projectId, tenantId);
const domain = 'www.example.com';
const sessionId = 'Hashed session identifier';
const userId = 'Hashed user identifier';
const requestMetadata = {
domain: domain,
sessionId: sessionId,
userId: userId,
};
const histogramQueriesElement = {
histogramQuery: query,
};
const histogramQueries = [histogramQueriesElement];
const request = {
parent: formattedParent,
requestMetadata: requestMetadata,
histogramQueries: histogramQueries,
};
client
.searchJobs(request)
.then(responses => {
const resources = responses[0];
for (const resource of resources.matchingJobs) {
console.log(`Job summary: ${resource.jobSummary}`);
console.log(`Job title snippet: ${resource.jobTitleSnippet}`);
const job = resource.job;
console.log(`Job name: ${job.name}`);
console.log(`Job title: ${job.title}`);
}
})
.catch(err => {
console.error(err);
});
}
Python
from google.cloud import talent
import six
def search_jobs(project_id, tenant_id, query):
"""
Search Jobs with histogram queries
Args:
query Histogram query
More info on histogram facets, constants, and built-in functions:
https://godoc.org/google.golang.org/genproto/googleapis/cloud/talent/v4beta1#SearchJobsRequest
"""
client = talent.JobServiceClient()
# project_id = 'Your Google Cloud Project ID'
# tenant_id = 'Your Tenant ID (using tenancy is optional)'
# query = 'count(base_compensation, [bucket(12, 20)])'
if isinstance(project_id, six.binary_type):
project_id = project_id.decode("utf-8")
if isinstance(tenant_id, six.binary_type):
tenant_id = tenant_id.decode("utf-8")
if isinstance(query, six.binary_type):
query = query.decode("utf-8")
parent = f"projects/{project_id}/tenants/{tenant_id}"
domain = "www.example.com"
session_id = "Hashed session identifier"
user_id = "Hashed user identifier"
request_metadata = {"domain": domain, "session_id": session_id, "user_id": user_id}
histogram_queries_element = {"histogram_query": query}
histogram_queries = [histogram_queries_element]
# Iterate over all results
results = []
request = talent.SearchJobsRequest(
parent=parent,
request_metadata=request_metadata,
histogram_queries=histogram_queries,
)
for response_item in client.search_jobs(request=request).matching_jobs:
print("Job summary: {response_item.job_summary}")
print("Job title snippet: {response_item.job_title_snippet}")
job = response_item.job
results.append(job)
print("Job name: {job.name}")
print("Job title: {job.title}")
return results
后续步骤
如需搜索和过滤其他 Google Cloud 产品的代码示例,请参阅 Google Cloud 示例浏览器。