【发布时间】:2022-10-04 16:16:30
【问题描述】:
我是 Elastic Search 的新手,我有如下文件:
相同 JSON 索引的映射如下:
映射
{
"mappings": {
"properties": {
"age": {
"type": "long"
},
"hobbiles": {
"type": "keyword"
}
}
}
}
一些示例文件如下所示:
[{
"_id": "test@domain.com",
"age": 12,
"hobbiles": [{
"name": "Singing",
"level": "begineer"
},
{
"name": "Dancing",
"level": "begineer"
}
]
},
{
"_id": "test1@domain.com",
"age": 7,
"hobbiles": [{
"name": "Coding",
"level": "begineer"
},
{
"name": "Chess",
"level": "begineer"
}
]
},
{
"_id": "test2@domain.com",
"age": 20,
"hobbiles": [{
"name": "Singing",
"level": "begineer"
},
{
"name": "Dancing",
"level": "begineer"
}
]
},
{
"_id": "test3@domain.com",
"age": 21,
"hobbiles": [{
"name": "Coding",
"level": "begineer"
},
{
"name": "Dancing",
"level": "Football"
}
]
}
]
现在我想获取 id IN (test@domain.com, test1@domain.com) 和年龄大于 5 的文档。 [操作上] hobiiles Football。
我对输出的期望是我应该得到三个文档:如果爱好不匹配,那么它也应该没问题,但如果爱好匹配,那么该文档应该在最前面。基本上我想匹配爱好,但如果它不匹配它是可选的,那么我也应该根据先前的子句获取数据。
[test3@domain.com, test@domain.com, test1@domain.com]
测试 3 在顶部,因为 Football 在那里匹配,测试和测试 1 因为 age 和 id 匹配在那里。
【问题讨论】: