Я новичок в Elasticsearch, и у меня есть индекс ELS «студент» со следующим запросом. Мне нужно выполнить student.name только тогда, когда is_rep=True.
Примечание: поле is_rep не будет доступно явно
"query": {
"bool": {
"must": { "term": { "subject": "maths" }} ,
"must": { "term": { "student.name": "xyz"}}
}
}
Может ли кто-нибудь помочь мне достичь этого
@JoeSorocin Нет... я не буду знать значение поля is_rep, чтобы добавить или удалить student.name из запроса
Я бы сделал что-то вроде этого:
{
"query": {
"bool": {
"filter": [
{
"term": {
"subject": "maths"
}
},
{
"bool": {
"minimum_should_match": 1,
"should": [
{
"term": {
"is_rep": false
}
},
{
"bool": {
"filter": [
{
"term": {
"student.name": "xyz"
}
},
{
"term": {
"is_rep": true
}
}
]
}
}
]
}
}
]
}
}
}
Что означает «не будет доступно явно»? Что он присутствует не в каждом документе?