【发布时间】:2021-06-13 11:40:37
【问题描述】:
如何在技能列上获取条件为“(角度或角度 js)和(java 或核心 java)和 html”的记录,并根据对具有嵌套映射的集合的多年经验进行排序,如下所述,以及其他一些必须不同列的条件
"skills" : {
"type" : "nested",
"properties" : {
"skill" : {
"type" : "keyword",
"normalizer" : "keyword_lowercase"
},
"yearsOfExp" : {
"type" : "double"
}
}
}
尝试了以下查询但无法获得结果
{
"from": "0",
"size": "30",
"track_total_hits": true,
"query": {
"bool": {
"must": [
{
"terms": {
"status": [
"Active"
]
}
},
{
"nested": {
"path": "skills",
"query": {
"bool": {
"must": [
{
"bool": {
"should": [
{
"match": {
"skills.skill": "angular js"
}
},
{
"match": {
"skills.skill": "Angular"
}
}
]
}
},
{
"bool": {
"should": [
{
"match": {
"skills.skill": "java"
}
},
{
"match": {
"skills.skill": "core java"
}
}
]
}
},
{
"match": {
"skills.skill": "html"
}
}
]
}
}
}
}
]
}
},
"sort": [
{
"_score": {
"order": "desc"
}
},
{
"totalExpInMonths": {
"order": "desc"
}
}
]
}
示例文档:
{
"id": 1295,
"skills": [
{
"skill": "Test-Driven Development",
"yearsOfExp": 0
},
{
"skill": "TOAD",
"yearsOfExp": 0
},
{
"skill": "Version Control",
"yearsOfExp": 0
},
{
"skill": "WebLogic Enterprise Application Server",
"yearsOfExp": 0
}
],
"fullName": "Abdul Shaik",
"status": "Active"
}
【问题讨论】:
-
你能添加一个应该在结果中返回的示例文档
-
@jaspreetchahal 添加了示例文档
标签: elasticsearch search nested