2
我有這樣的映射:彈性搜索多個術語
"profile": {
"properties": {
"educations": {
"properties": {
"university": {
"type": "string"
},
"graduation_year": {
"type": "string"
}
}
}
}
}
這顯然持有人的教育歷史。每個人都可以有多種教育。我想要做的是搜索「2012」中從「SFU」畢業的人。要做到這一點,我使用過濾的搜索:
"filtered": {
"filter": {
"and": [
{
"term": {
"educations.university": "SFU"
}
},
{
"term": {
"educations.graduation_year": "2012"
}
}
]
}
但是這個查詢的作用是找到誰擁有「SFU」文件和「2012」,在他們的教育,所以這個文件將匹配,這是錯誤的:
educations[0] = {"university": "SFU", "graduation_year": 2000}
educations[1] = {"university": "UBC", "graduation_year": 2012}
是否有無論如何我可以過濾每個教育的條款?