我在我的系统上实施Elasticsearch,但我有一个问题:
我正在创建一个职位门户,我目前使用下面的请求列出所有可用职位:
GET /companies/job/_search
{
"sort" : [
{ "post_date" : {"order" : "asc"}},
"_score"
]
}
然后,我得到结果,所有可用的位置(2357),例如:
{
"took": 3,
"timed_out": false,
"_shards": {
"total": 1,
"successful": 1,
"failed": 0
},
"hits": {
"total": 2537,
"max_score": 1.9790175,
"hits": [
{
"_index": "companies",
"_type": "job",
"_id": "2",
"_score": 1.9790175,
"_source": {
"name": "HTML Developer (1 - 2 Yrs Exp.)",
"category": "Graphic Designer",
"location": "Nolda",
"skills": "Javascript"
}
},
{
"_index": "companies",
"_type": "job",
"_id": "114",
"_score": 0.30432263,
"_source": {
"name": "PHP Developer (2 Yrs Exp.)",
"category": "Engineering Job",
"location": "Pune",
"skills": "PHP"
}
}
]
}
}
但我想根据返回的列表在侧边栏中显示过滤器。与附带的原型类似。
实施例: 返回了2357个空缺职位。 在旁边的列表中,显示了总空缺,按类别分组,我们有214个是平面设计师,514个是工程等... 按位置分组,我们有:Nolda为1254,Pune为221等...
我想知道,如果在同一个请求中我将查询返回所有可用的作业,那么也可以进行分组。
或者,如果我必须提出两个请求,一个是带来所有作业,另一个是带来分组(以及分组中每个项目的计数器)。
答案 0 :(得分:1)
试试这个,
GET companies/job/_search {
"size": 0, "aggs": {
"group_by_state": {
"terms": {
"field": "category.keyword", "size": 15
}
}
}
}
其中field是您喜欢的类别,位置,技能的字段 然后大小将是页面所需的结果数。
希望它会有所帮助:)